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

3bygqnnd  于 12个月前  发布在  Nginx
关注(0)|答案(8)|浏览(130)

在我的错误日志中,
[emerg] 10619#0:0.0.0:80在/etc/nginx/sites-enabled/mysite.com:4中的重复默认服务器
在第4行,我有:

server_name mysite.com   www.mysite.com;

字符串
有什么建议吗?

dddzy1tm

dddzy1tm1#

您可能需要删除位于/etc/nginx/sites-enabled中的其他文件(例如default配置)。
此问题是由于重复提供给文件中的一个或多个listen指令的default_server参数引起的。您可能会发现此冲突指令的内容类似于:

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

tnkciper

tnkciper2#

操作系统Debian 10 + nginx。在我的例子中,我取消了“默认”页面的链接:

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

yk9xbfzb3#

在终端执行此命令,查看侦听同一端口的冲突配置:

grep -R default_server /etc/nginx

字符串

t9aqgxwy

t9aqgxwy4#

如果你在Digital Ocean上,这意味着你需要转到/etc/nginx/sites-enabled/,然后使用rm -R digitalocean和default删除
它帮我修好了!
Pic of Console on Windows 10 using Bitvise

i34xakig

i34xakig5#

在我的例子中,在/etc/nginx/nginx.conf中注解掉include上的restart指令是有效的。

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

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

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

xkftehaa

xkftehaa6#

在我的情况下,垃圾文件从编辑器造成的问题。我有一个配置如下:

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

字符串
../sites目录中,最初我有一个default.config文件。然而,我错误地将重复的文件保存为default.config.savedefault.config.save.1。删除它们解决了这个问题。

9wbgstp7

9wbgstp77#

如果davidjb的答案没有显示多个default_server行,请检查是否有多个include指令。
您可能不小心将默认站点(或其他站点)包含了两次。

6bc51xsx

6bc51xsx8#

我的情况下,我已经有一个文件内的网站启用。
在删除不需要的文件和交换相关文件后,问题已经解决。
选项来尝试nginx配置是否通过命令确定

sudo nginx -t

字符串
测试结果:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

相关问题