小程序最近火了,其实网上有段话 :小程序一直火不了就是因为https环境太难搭建了。不以为然走了很多弯路。才留下一下宝贵的教程,且行且珍惜。(本地调试环境)
首先讲第一种简单的搭建方式:
材料准备:
1、nginx (用来做反向代理)
2、https证书申请,SSL
3、域名一个
4、固定公网ip
5、云服务器(这个不是必须的,可有可无)
第一步:(启动项目,端口映射)
这里或许有人问没有固定公网ip怎么办,毕竟固定公网ip这种东西要钱(如果是公司的就去申请吧),这个时候就需要费脑 一点了(对网络这一块熟悉的话或许不要,可以不用固定公网ip也能映射本地指定ip和指定端口出去告知我一下)。只要你能完成把本地调试的机子通过路由做映射到外网可进行外网访问即可。有固定的ip也是如上操作。
由于不同路由操作不同,可执行百度,大概操作是:
1、通过192.168.0.1或者是192.168.*.* 这个看路由背面,登录进去路由。
2、找到虚拟主机、配置上自己本机ip,可用ipconfig查。然后本地项目启动端口配置上。
3、使用固定公网ip加端口和本地访问一样进行访问看是否能正常访问。(正常访问即可,以上全是http访问)
第二步:(启动nginx , 配置https证书)
1、启动nginx ,查看是否能正常启动
在windows(cmd 命令下):
启动 start nginx
停止 nginx -s stop
重新加载 nginx -s reload
在linux环境下
开启 ./nginx
停止 nginx -s stop
重新加载 nginx -s reload
windows任务管理器中会出现是否如下:
然后使用 http://127.0.0.1访问,出现如下图:
2、 配置nginx 的 https 证书
打开nginx\conf\nginx.conf
在server{}中配置如下:(xxx.xxx.xin是你申请证书的域名)
ssl on;
ssl_certificate 1_xxx.xxx.xin_bundle.crt;
ssl_certificate_key 2_xxx.xxx.xin.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
3、按照第一步把nginx的端口和ip也做一遍路由映射,如果有准备到云服务器的就忽略这一步,直接部署到云服务器中即可。
第三步:(做反向代理,完成配置)
1、nginx 进行地址反向代理
第一步:
把 nginx/conf/nginx.conf中的server节点中的 listen 改为 443 端口
listen 443;
第二步:
把 location 节点做以下代理
location / {
proxy_pass http://外网访问ip:port;
}
2、重新加载数据,测试https是否可以访问。
总结:
好处: 配置方便快捷、配置少
缺点:对物质要求和网络知识要求比较高。例如公网映射、固定公网ip