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
相关产品推荐
相关产品推荐

