解决Nginx检测时出现的空服务器名冲突警告问题
解决Nginx "conflicting server name "" on 0.0.0.0:80" 警告
问题原因
该警告的触发原因是example.com和example1.com配置文件中的80端口server块未指定server_name,Nginx会默认将空字符串("")作为它们的服务器名称。当多个server块在同一端口监听且存在未明确命名的服务器时,Nginx会识别出空服务器名称的冲突,从而抛出该警告。
解决方案
只需给这两个80端口的server块添加对应的server_name,让Nginx明确每个server块对应的域名,即可避免空名称冲突。
1. 修改/etc/nginx/sites-available/example.com中的80端口server块
将原代码:
server { listen 80; return 301 https://$host$request_uri; }
修改为:
server { listen 80; server_name .example.com; return 301 https://$host$request_uri; }
2. 修改/etc/nginx/sites-available/example1.com中的80端口server块
将原代码:
server { listen 80; return 301 https://$host$request_uri; }
修改为:
server { listen 80; server_name .example1.com; return 301 https://$host$request_uri; }
验证修改
修改完成后,重新执行配置检测命令:
sudo nginx -t
若输出以下内容,说明配置已正常:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
最后重启Nginx使配置生效:
sudo systemctl restart nginx
内容的提问来源于stack exchange,提问作者James Son
相关产品推荐
相关产品推荐

