You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置多域名server块时domain.com错误匹配sub.domain.com块问题

Nginx 域名匹配异常原因分析

以下是该问题的几类常见触发原因:

  • 配置未生效:修改Nginx配置后没有执行nginx -s reload(或对应系统的服务重载命令),domain.com对应的server块并未实际加载,所有443端口的请求只会匹配已加载的第一个server块。
  • 第二个server块缺少完整SSL配置:你给出的配置示例中省略了SSL证书相关参数,若仅在sub.domain.com的server块中配置了ssl_certificate和ssl_certificate_key,第二个server块未配置对应证书,Nginx无法识别该块可处理SSL请求,最终所有443端口的SSL请求都会落到同端口下的第一个server块。
  • 客户端不支持SNI扩展:部分老旧客户端(如Windows XP系统的IE浏览器、低版本爬虫工具)不支持SNI(服务器名称指示)扩展,SSL握手阶段不会携带请求的目标域名,Nginx无法根据域名匹配对应server块,会默认使用同监听端口下的第一个server块处理请求。
  • 存在隐性默认服务冲突:如果Nginx全局配置或其他引入的配置文件中,已有其他监听443端口的server块被标记为default_server,或者第一个server块被隐式设为默认服务,当请求的Host头匹配失败时就会走默认服务,可执行nginx -T查看全量生效配置确认是否存在冲突。
  • 测试请求参数异常:若测试时没有正确指定Host头,或者第一个server块使用的是包含domain.com的泛域名证书,也可能出现匹配异常,可通过命令curl -v --resolve 'domain.com:443:你的服务器IP' https://domain.com测试,查看返回的服务信息确认实际匹配的server块。

内容的提问来源于stack exchange,提问作者Finn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:15:07