nginx第一次设置https遇到的问题

博主是从最原始的nginx接收http数据改成https,并把http请求跳转成https,第一次小白把会遇到的问题都踩了一遍,现在把问题记录下来。
这是博主最初的nginx设置:

# 默认nginx配置文件地址/etc/nginx/nginx.conf
server {
       listen 80;
       server_name localhost;
      }

第一个坑:localhost

最初只是为了网站挂上服务器能够正常访问就没有深究其特性;
localhost的特性是捕获所有对本服务器此端口的数据请求,即是网站域名的各级请求加上服务器公网IP请求(浏览器输入IP可访问网站),所以当server_name设置了localhost,则该端口其它网址区别设置都将变的无意义。

第二个坑:网站DNS解析设置

开始博主只设置了“”星号记录,www.网址.com和其它abc.网址.com的二级域名都能访问,以前访问也没觉得,这次改https就出问题了独独“网址.com”就是访问跳转不正确, DNS设置也不是即时生效,检查问题费了不少时间。
在没特殊二级域名需求下设置三种记录值,分别是www、@、()星号,将三种域名请求都正确导向服务器。

注:申请https的SSL证书时,阿里云自动生成了一段记录值,这可能也是自己错误设置的记录值,加上生成的,搞乱了布设条序。

页面跳转自动添加nginx监听端口怎么关闭_nginx

第三个坑:浏览器(chrome)

谷歌浏览器有DNS跳转缓存或者网站跳转缓存,在修改好新的域名跳转逻辑后,浏览器还是记忆原来的网址跳转,博主想来想去怎么也找不到不对的,想不通啊,最后还是换浏览器火狐试了才发现问题的,所以浏览器的智能记忆在检查信息更改时容易让人无厘头。。

就这上面三个坑,让一个问题是变的复杂化,在第一次尝试,知识还不够全面小白的时候,可能改对了一边,没成功再改回错的,来来去去,弄的自己都风中凌乱了。

以下是解决以上问题后完整的server设置,https反而是最容易的,申请证书-上传服务器-启用配置就完成了(不要忘了打开服务器443端口)。
利用301重定向将http 80端口的请求和https 433端口“网址.com”请求都导向https 433端口的www的网站服务上。

server {
           listen 80;
           // 保留了localhost就只是不漏掉IP访问
           server_name 网址.com www.网址.com localhost;
           return 301 https://www.网址.com$request_uri;
       }

       server {
           listen 443;
           server_name 网址.com;
           return 301 https://www.网址.com$request_uri;
       }

       server {
           # charset utf-8;
           listen 443 default_server ssl;
           server_name www.网址.com;

           ssl on;
           #从云服务商获取到的第一个文件的全路径
           ssl_certificate /etc/ssl/1_网址.com.pem;
           #从云服务商获取到的第二个文件的全路径
           ssl_certificate_key /etc/ssl/2_网址.com.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;

           location /media {
               alias /home/web/media;
           }

           location /static {
               alias /home/web/static;
           }

           location / {
             
           }

       }