使用 grep 命令快速找出 nginx 配置冲突的域名所在配置文件
修改 Nginx 配置时,报错:
$ nginx -t
nginx: [warn] conflicting server name "crowall.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
出现 Nginx 报错 "conflicting server name" 通常意味着在 Nginx 配置中有两个或更多的 server 块使用了相同的 server_name 指令。
我的服务器是 ubuntu 22.04,安装默认的 nginx 1.18.0,所有的 server 都在 /etc/nginx/sites-enabled 目录下。
所以问题就变成了:找出 /etc/nginx/sites-enabled 目录里所有配置了这个域名的文件。
如果只有两三个 server 配置文件,一个个看也没问题,不过我的 server 比较多,所以就需要使用 grep 命令。
grep -r "crowall.com" /etc/nginx/sites-enabled/
-r
表示如果下面有子目录也会扫描。
执行完就可以看到冲突的两个配置文件了,非常方便。