第一次搭,记录一下
前提准备
一、申请域名并配置成https
我是用的阿里云里面直接生成了免费的SSL证书,通过Nginx配置
conf文件
server {
listen 443 ssl;
server_name XXX.com;
ssl_certificate /usr/local/nginx/conf/cert/XXX.com.pem;
ssl_certificate_key /usr/local/nginx/conf/cert/XXX.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
root /usr/local/dist/;
location ~* ^/(auth|code|upms|gen|weixin|mall|payapi|doc|webjars|swagger-resources) {
proxy_pass http://127.0.0.1:9999;
proxy_connect_timeout 15s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
index index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k ;
proxy_busy_buffers_size 64K;
proxy_temp_file_write_size 64k;
}
}
这里遇到了两个问题:
问题一:
./nginx -s reload 的时候报错未配置SSL模块
解决:配置 SSL 模块方法
$ cd nginx-1.15.9(nginx的源码包目录) $ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。
用新的 nginx 文件覆盖当前的 nginx 文件。
$ cp ./objs/nginx /usr/local/nginx/sbin/
再次查看安装的模块(configure arguments: –with-http_ssl_module说明ssl模块已安装)。
$ /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.15.9 ... configure arguments: --with-http_ssl_module
问题二:
执行nginx命令的时候报the "ssl" directive is deprecated, use the "listen ... ssl"
解决:删除配置文件里面的ssl on,看了下原因是ssl不建议作为一个指令使用,而只是listen指令的一个参数。
二、配置小程序
- 登录小程序的微信公众平台(https://mp.weixin.qq.com) ,设置服务器域名
- 将你nginx中https配置的域名添加到域名列表中(配置完后,微信开发者工具要重启才能生效)
- 配置自己的服务器域名
三、修改UNIAPP
- 修改配置文件(/config/env.js)中的服务器地址basePath,改为上面配置的生产环境域名地址,必须https协议
-
配置manifest.json文件
- 发行到微信开发者工具(请确保已经安装微信开发者工具),生成环境建议直接发行到微信小程序,体积会小一些
-
关闭微信开发者工具的不校验合法域名(把勾去掉)
-
编译小程序
看小程序能否成功加载出数据
-
小程序成功加载出数据后即可上传小程序代码
-
上传成功后登录微信公众平台,提交审核
-
待微信官方审核通过后,发布代码