引言
小程序开发前后端分离的项目时,小程序必须使用域名(https)才能够成功上线使用,不能够使用代理等方法。
HTTP和HTTPS的概念
- HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
- HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
- HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTP与HTTPS有什么区别?
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
- https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
开始
1.nginx.conf配置
找到Linux系统下的nginx.conf文件,并进行修改,配置如下:
- 注释之前的http server配置
- 新增http server
http{ include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 443 ssl; server_name 域名; ssl_certificate /usr/local/ssl/www.qsdhh.xyz.crt; ssl_certificate_key /usr/local/ssl/www.qsdhh.xyz.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; server_tokens off; fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; access_log /usr/local/nginx/logs/httpsaccess.log; location / { proxy_pass 服务器Ip地址+后端端口; proxy_set_header Host 127.0.0.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_set_header Host $host; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server{ listen 80; server name 域名; rewrite ^(.*) https: /l$host$1 permanent; } }
注意:proxy_pass 中的配置根据你的项目来定义,我的是前后端分离的项目。小程序使用uniapp,后端使用node.js,我把后端放到云服务器上启动,所以才是这种写法。
2.检查配置
在nginx.conf的根目录下输入命令:
nginx -t
生成以下命令则代表配置成功
nginx: the configuration file /nginx.conf syntax is ok
nginx: configuration file /nginx.conf test is successful
3.访问域名
无提示信息的话,就大功告成。
4.小程序配置
进入微信公众号平台,在开发管理中进行服务器域名配置。配置好之后,将小程序重新发布即可。
5.小程序体验