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

Nginx配置多server_name时第二个域名无法正常工作的问题排查

问题分析与解决思路

可能的原因

  • HTTPS Server块配置遗漏:HTML站点的HTTPS配置未正确包含www.FQDN,导致Nginx无法匹配该请求,转而将其路由到第一个加载的SSL Server块(即配置文件夹中的第一个站点)。
  • SSL证书配置错误:虽然申请了双域名证书,但Nginx配置中可能未引用包含双域名的完整证书链,或证书路径/权限设置有误。Safari对SSL证书链的验证比Chrome/Firefox更严格,因此会直接提示不安全,而其他浏览器可能先执行重定向逻辑。
  • Ansible模板渲染异常:统一模板生成配置时,HTML站点的server_name变量或证书路径未正确替换,比如模板中仅为WordPress站点添加了www域名,或证书路径变量在HTML站点实例中未正确填充。
  • 浏览器缓存差异:Chrome/Firefox可能缓存了旧的重定向规则,而Safari直接验证当前SSL证书状态,导致表现不一致。

解决思路

1. 检查HTTPS Server块配置

  • 打开HTML站点的HTTPS配置文件,确认server_name同时包含主域名和www域名:
    server {
        listen 443 ssl;
        server_name example.com www.example.com;
        # 其他SSL相关配置
    }
    
  • 执行nginx -t验证配置语法,无错误后执行systemctl reload nginx生效。

2. 验证SSL证书有效性

  • 检查证书是否包含双域名:
    openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -text -noout | grep DNS
    
    输出应同时显示DNS:example.com和DNS:www.example.com。
  • 确认Nginx配置中引用的是fullchain.pem(完整证书链)而非仅cert.pem,私钥路径和权限正确(通常权限为600,属主为root/nginx):
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    

3. 排查Ansible模板问题

  • 检查模板中server_name的变量逻辑,确保所有站点都渲染双域名:
    server_name {{ site_domain }} www.{{ site_domain }};
    
  • 查看Ansible生成后的最终配置文件,确认HTML站点的server_name和证书路径与预期一致,排除模板条件逻辑导致的配置缺失。

4. 测试请求与清理缓存

  • 使用curl -v https://www.example.com查看请求流程,重点检查:
    • 证书信息是否匹配目标域名;
    • 重定向Location是否指向正确的HTTPS站点。
  • 清理所有浏览器缓存,避免旧规则干扰测试;使用openssl s_client -connect www.example.com:443直接测试SSL连接,排查证书链问题。

5. 优化默认服务器块的SSL配置

  • 为默认服务器块配置独立的有效SSL证书(如泛域名证书或Let's Encrypt生成的默认证书),避免未匹配的请求复用第一个站点的证书:
    server {
        listen 443 ssl default_server;
        server_name _;
        ssl_certificate /path/to/default-fullchain.pem;
        ssl_certificate_key /path/to/default-privkey.pem;
        return 444; # 直接关闭未匹配的请求
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:15:15