解决Nginx同服务器下未配置SSL站点访问默认站点的问题

本文描述了Nginx环境下,未配置SSL的站点访问时被重定向至已配置SSL站点的问题,并提供了解决方案。通过设置443端口的无效default_server,可避免未配置SSL站点误访问已配置站点的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决Nginx同服务器下未配置SSL站点访问默认站点的问题

描述

        Nginx在访问未配置SSL站点的时候会先访问默认配置过SSL的站点。距离A站点配置了SSL,B站点未配置,此时访问B站点的HTTPS则会显示A站点的内容,对于这个问题,官方的说法是:【在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点】。但是即使设置了默认站点,还是存在这个问题。

解决方案- - -defalut_server指令

      首先了解nginx的查找规则,第一次查找配置文件里有无匹配的域名,如未找到,则查找default_server,如default_server未设置,则默认匹配配置文件排序后的第一个。所以根据规则,我们可以为443端口设置一个无效的default_server来解决这个问题。

以下是配置:

server {
     listen 443 default_server;
     server_name _ ;
     ssl on;
     ssl_certificate        xxx.crt;                
     ssl_certificate_key    xxx.key;
     return 444;
}

注意:以下这两个参数必须填写,否则会导致所有SSL站点无法访问。证书可以为无效也可以为任意。(此处为坑)

 ssl_certificate        xxx.crt;                
 ssl_certificate_key    xxx.key;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值