主要说一下http和https的区别和配置,不解释概念,只说配置过程当中关键的理解。这里使用腾讯云免费
ssl
证书html
腾讯云免费ssl证书地址:这里nginx
在配置过程当中,http默认配置监听80
端口,表示一个server;而https默认监听443
端口,也是一个server。理解这点很是关键。80端口的server咱们已经配置好了,如今就是配置443端口的server,在这个server下再配置ssl
spa
腾讯云建立免费证书后下载,解压,会有四个文件夹,咱们只须要nginx下的文件code
如图有两个文件,一个是.crt
文件,表示证书;另外一个是.key
文件,表示秘钥server
先将上一步拿到的两个文件上传到与nginx.conf
同级的目录下,而后编辑 nginx.confhtm
下面贴一个比较简单的80端口server配置:blog
server { listen 80; server_name www.aaa.com; root /home/blog; location / { index index.html } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
根据第一步的理解,咱们在80端口的server下新添一个443端口的server,咱们要实现http和https访问都会运行一样配置的同一个程序。因此新建server:ssl
server { listen 443 ssl; server_name www.aaa.com; ssl on; ssl_certificate 1_aaa.com_bundle.crt; #上传的证书路径 ssl_certificate_key 2_aaa.com.key; #上传的秘钥路径 root /home/blog; location / { index index.html } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
如今访问http和https是彻底相同的效果,咱们已经实现了基本配置rem
另外一种状况也很经常使用,就是http访问自动重定向到https,这样的话http的server不须要处理程序,只须要接受请求重定向到https的server就能够了。因此修改80端口的server:get
server { listen 80; server_name www.aaa.com; rewrite ^(.*) https://$host$1 permanent; }
经常使用的配置就这些,OK