«

Nginx报错duplicate upstream

指尖二进制 • 1 年前 • 816 次点击 • NGINX


今天重启nginx发现突然重启不了,报错重复了。

[root@lb ~]# systemctl restart nginx
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
[root@lb ~]# 
[root@lb ~]# systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2024-03-03 06:14:32 CST; 4s ago
     Docs: http://nginx.org/en/docs/
  Process: 9455 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)

Mar 03 06:14:32 lb systemd[1]: Starting nginx - high performance web server...
Mar 03 06:14:32 lb nginx[9455]: nginx: [emerg] duplicate upstream "htmlservers" in /etc/nginx/conf.d/upstream.conf:1
Mar 03 06:14:32 lb nginx[9455]: nginx: configuration file /etc/nginx/nginx.conf test failed
Mar 03 06:14:32 lb systemd[1]: nginx.service: control process exited, code=exited status=1
Mar 03 06:14:32 lb systemd[1]: Failed to start nginx - high performance web server.
Mar 03 06:14:32 lb systemd[1]: Unit nginx.service entered failed state.
Mar 03 06:14:32 lb systemd[1]: nginx.service failed.

查看日志、检查日志文件报错

[root@lb ~]# tail -f /var/log/nginx/error.log 
2024/03/03 06:14:32 [emerg] 9455#0: duplicate upstream "htmlservers" in /etc/nginx/conf.d/upstream.conf:1
[root@lb ~]# nginx -t
nginx: [emerg] duplicate upstream "htmlservers" in /etc/nginx/conf.d/upstream.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed

最后仔细在/etc/nginx/里面一个个找,发现的确多出一个相同名称的upstream xxservers,于是果然删除一个,重启nginx又可用!

[root@lb ~]# grep -rn 'htmlservers' /etc/nginx/
/etc/nginx/conf.d/default.conf:9:        proxy_pass http://htmlservers;
/etc/nginx/conf.d/default.conf:23:    upstream htmlservers {
/etc/nginx/conf.d/upstream.conf:1:upstream htmlservers {

结论:nginx upstream模块不能有重复的。

还没收到回复