nginx反向代理(用于微信小程序开发)
主要参考
链接:https://www.jianshu.com/p/3c2017f5b569
https://www.cnblogs.com/tl542475736/p/8992435.html
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
一、微信小程序对服务器的要求
- 不能出现端口号
- 不能用localhost及127.0.0.1
- 必须用https
二、实现步骤
- 本地服务器,用json-server搭建简单的服务器
- nginx反向代理,隐藏端口号
- https服务(需要证书key等)
- 微信小程序端的设置
三、需要的环境和文件
- 安装Node.js
- 下载nginx
- openssl
1、openssl工具下载地址:(http://slproweb.com/products/Win32OpenSSL.html),下载后默认安装即可
2、设置server.key及密码
openssl genrsa -des3 -out server.key 1024
3、设置用户信息(国家地区等),直接输入"."可以不设置,如果设置的话,域名【comman name】一定不能填错,也不能全不设置,会无法生成证书
openssl req -new -key server.key -out server.csr
4、写RSA秘钥,密码就是server.key的密码
openssl rsa -in server.key -out server_nopwd.key
5、获取私钥
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
6、证书文件的位置 在启动cmd的路径下,如果直接运行的就在当前用户的目录
- 微信小程序开发工具
四、json-server的使用
- 安装json-server服务
npm install -g json-server
2.新建一个json文件,例如新建了一个cars.json:
{
"cars": [
{
"id": 1,
"desc": "哈弗H6",
"completed": false
},
{
"id": 2,
"desc": "吉利博越",
"completed": false
},
{
"id": 3,
"desc": "宝骏560",
"completed": false
}
]
}
3.进入cars.json的目录并运行
json-server cars.json
五、nginx的配置
nginx的基本操作
- 启动:双击,cmd中运行start nginx.exe,nginx.exe -t等
- 停止:cmd中运行nginx.exe -s stop等
- 重启:cmd中nginx.exe -s reload
修改conf/nginx.conf文件 - 配置http server
#http
server {
listen 80;
server_name www.test.com; #
location / {
proxy_pass http://127.0.0.1:3000/; #
}
}
修改hosts文件,添加
127.0.0.1 www.test.com
- 配置https server
# HTTPS server
#
server {
listen 443 ssl;
server_name www.test.com; #
ssl_certificate D:\sslcers\server.crt; #
ssl_certificate_key D:\sslcers\server_nopwd.key; #
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:3000/; #
root html;
index index.html index.htm;
}
}