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

Nginx server_name匹配错误问题求助

Nginx server_name匹配错误问题求助

我最近碰到了一个Nginx配置的棘手问题,想请各位帮忙分析排查下。

我的服务器上有好几套结构相似的Nginx配置块,大致代码如下:

server {
    server_name app.domain1.com;
    listen [::]:443 ssl http2;
    index index.html index.htm index.nginx-debian.html;
    root /home/sites;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    proxy_buffering off;
    client_max_body_size 0;
    ignore_invalid_headers off;

    error_log /var/log/nginx/app-domain1.error_log notice;

    location / {
        proxy_pass http://localhost:8090;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

这些配置块的差异仅在于server_name(比如前缀会是app、preview、build这类)和对应的proxy_pass地址,之前这套配置一直运行得很正常。

但最近新增了一个域名app.domain2.com,它的DNS指向和之前的域名完全相同的服务器IP,我也用Certbot生成了对应的SSL证书,配置结构和上面的代码完全一致,只是把server_name改成了app.domain2.com,proxy_pass也换成了新的目标地址。

现在的问题来了:不管访问app.domain2.com,还是domain2下的其他前缀域名,Nginx总是会匹配到app.domain1.com的配置块,根本不会命中domain2对应的配置。

我尝试过添加一个包含两个顶级域名的默认配置,但没有任何效果。另外我是用Cloudflare管理DNS的,所有记录都是设置成“DNS only”模式指向服务器IP的。

有没有大佬能给我点思路,看看问题可能出在哪,或者有什么解决办法?

备注:内容来源于stack exchange,提问作者mbouclas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:30:31