Nginx配置ssl证书后访问被拒绝

在阿里云上申请了一个免费的ssl证书,想将其布置到网站上,但出现了连接被拒绝的情况
在这里插入图片描述

好,开始查找问题所在
在网上开始搜索相似的问题逐一排查
服务器上443端口肯定是放开的,检查了防火墙也没问题,那么最有可能的就是在nginx.conf的配置上了
这是部分配置

    server {
        listen       443 ssl ;
        listen       [::]:443 ssl ;
        server_name  xxx.xyz;
#        root         /usr/share/nginx/html;
#
        ssl_certificate /etc/nginx/conf/cref/xxx.xyz.pem;
        ssl_certificate_key /etc/nginx/conf/cref/xxx.xyz.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
#
        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
        location /static {
            alias  /data/www/test/static;
            }
		
	location / {
            proxy_pass http://localhost:5000;  # Flask 应用运行在本地的 5000 端口
	       proxy_set_header Host $host;       # 传递原始的 Host 头部信息
	       proxy_set_header X-Real-IP $remote_addr;  # 传递客户端的 IP 地址
	       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	       proxy_set_header X-Forwarded-Proto $scheme;  # 传递原始的请求协议(http/https)
        }
        
#    }

}

server {
        listen       80;
        listen       [::]:80;
        server_name  xxx.xyz;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }

	   rewrite ^(.*)$ https://$host$1;
        location / {
            index index.html index.htm;
        }
        }
   

反反复复检查了很多遍,查看了各个帖子里出现的各种问题,还是没有发现问题的所在
在nginx的error日志里也没有发现异常
在这里插入图片描述

但是有一个让我很在意的点就是:我使用默认的http是可以正常访问网站的
在这之前我一至是使用的http协议也就是默认的80端口来访问网站
而在我申请完ssl证书后就开始使用上面的80端口跳转到443端口的方案,在更改完配置之后重新启动nginx就出现了上述https被拒绝的情况,但是,在重新启动后使用http应该自动转到https才对,之前一直认为是配置出现了错误,
苦苦寻找无果后我想到了一种可能:会不会更改的配置根本就没有生效,nginx一直使用的是之前的配置
在这里插入图片描述
然后我敲了一个之前一直没敲过的命令

sudo nginx -s reload

这个命令会告诉 Nginx 重新读取配置文件,而不会中断正在进行的连接。
然后它给我返回了下面这个错误

nginx: [emerg] "rewrite" directive is not allowed here in /etc/nginx/nginx.conf:102

什么??命令不在正确位置?
我再去重新仔细审视了一下我的配置文件,终于发现了这个困扰了我一个多小时的的问题所在:

  • 在经过多次大大小小的更改后,我的配置文件依旧比较乱了,在某个角落一个** } ** 右括号被我注释掉了,导致rewrite命令在这之前就被挡在了外面
    真相大白,困扰了我一个小时的问题竟然在这!
    在这里插入图片描述

原来,之前每次更改完配置之后都是直接关闭nginx再开启,可能更改的配置并不正确,但是并没有提示,而nginx发现问题后使用了之前的配置。
因为第一次接触这个东西,对Nginx并不熟悉,才导致了这次的笑话,在此记录一下,引以为戒

最后贴两个命令

sudo nginx -s reload

这个命令会告诉 Nginx 重新读取配置文件,而不会中断正在进行的连接。

sudo nginx -t

这个命令会检查配置文件是否有语法错误,但不会应用更改。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值