nginx-重复的默认服务器错误


105

在我的错误日志中

[emerg] 10619#0:/etc/nginx/sites-enabled/mysite.com:4中0.0.0.0:80的重复默认服务器

在第4行上,我有:

server_name mysite.com   www.mysite.com;

有什么建议?


4
发布您的完整配置。每个都server {}应该有自己的listen指令。
Marki555 2015年

如果要在启用站点的站点中编辑内容,并且连接意外关闭,则可能会以文本编辑器在那里自动保存文件结尾,因此几乎所有重复的配置都将结束,只需删除该文件(对于nano file.save)
LuisF

Answers:


196

您可能需要删除其中的其他文件(例如default配置)/etc/nginx/sites-enabled

此问题是由重复default_server提供给listen文件中一个或多个指令的参数引起的。您可能会发现此冲突指令的内容类似于:

listen 80 default_server;

作为有关listen状态的Nginx核心模块文档

default_server参数(如果存在)将使服务器成为指定address:port对的默认服务器。如果指令中都没有default_server参数,则该对中的第一台服务器address:port将是该对的默认服务器。

这意味着必须server在配置中定义另一个default_server为端口80设置的文件或块。nginx在您的配置文件中首先遇到该文件或块。mysite.com文件因此请尝试删除或调整该其他配置。

如果您正在努力寻找这些指令和参数的设置位置,请尝试如下搜索:

grep -R default_server /etc/nginx

谢谢。真的有帮助。
Koushik Das

29
只是要清楚,它是default_server只能出现在一个配置中的关键字-您可以使用listen 80;
-Eborbob

1
谢谢,你帮了我。就我而言,我在/etc/nginx/sites-enabled/default.save中找到了一个副本
Andrew Grow

1
除了@Eborbob的注释,该default_server参数对于每address:port对只能出现一次。这意味着有可能(而且很常见)default_server在整个nginx配置中出现多次,但适用于不同的IP /端口。
davidjb

2
grep命令只是故障单。这很简单,谢谢
FireDragon


5

OS Debian 10 + Nginx。就我而言,我将“默认”页面取消链接为:

  1. cd / etc / nginx / sites-enabled
  2. 取消链接默认
  3. 服务nginx重启

4

如果您在Digital Ocean上,这意味着您需要转到/ etc / nginx / sites-enabled /,然后使用rm -R digitalocean和default进行删除

它为我解决了!

使用Bitvise的Windows 10上的控制台图片


这是对我有用的简单答案。我必须转到/ etc / nginx / sites-enabled /,rm -R previousServerFolderName然后sudo service nginx restart进行systemctl status nginx显示“活动(运行)”
Roly Poly
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.