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

时间:2015-06-22 07:00:58

标签: nginx

在我的错误日志中,我得到了

  

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

在第4行我有:

server_name mysite.com   www.mysite.com;

有什么建议吗?

7 个答案:

答案 0 :(得分:139)

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

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

的内容
listen 80 default_server;

正如nginx core module documentation for listen所述:

  

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

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

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

grep -R default_server /etc/nginx

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

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

它为我修复了它!

Pic of Console on Windows 10 using Bitvise

答案 3 :(得分:1)

就我而言,来自编辑器的垃圾文件引起了问题。 我有一个如下配置:

#...
http {
 # ...
 include ../sites/*;
}

最初,在../sites目录中有一个default.config文件。 但是,由于错误,我将重复文件另存为default.config.savedefault.config.save.1。 删除它们可以解决问题。

答案 4 :(得分:0)

在终端上执行此操作,以查看侦听同一端口的冲突配置:

grep -R default_server /etc/nginx

答案 5 :(得分:0)

如果 davidjb 的回答没有显示多个 default_server 行,请检查多个包含指令。

您可能不小心将默认网站(或其他网站)包含了两次。

答案 6 :(得分:0)

就我而言,在 include 中注释掉 /etc/nginx/nginx.conf 上的通配符指令有效

#include /etc/nginx/sites-enabled/*;

include /etc/nginx/sites-enabled/abcdef.com;

PS:根据上面的评论,如果只有一种配置(默认配置或自定义配置),这可能是一种解决方案