nginx配置默认站点
解决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 8443 ssl default_server;
server_name _ ;
ssl_certificate /TRS/nginx/ssl/www_xihaian_gov_cn.crt;
ssl_certificate_key /TRS/nginx/ssl/www_xihaian_gov_cn.key;
return 403;
}
注意:以下这两个参数必须填写,否则会导致所有SSL站点无法访问。证书可以为无效也可以为任意。(此处为坑)
ssl_certificate xxx.crt;
ssl_certificate_key xxx.key;
————————————————
热爱技术,享受生活,感谢推荐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?