nginx-重复的默认服务器错误
nginx- duplicate default server error
在我的错误日志中我得到
[emerg] 10619#0: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/mysite.com:4
在第 4 行我有:
server_name mysite.com www.mysite.com;
有什么建议吗?
您可能还有位于 /etc/nginx/sites-enabled
中的其他文件(例如 default
配置)需要删除。
此问题是由于重复提供给文件中一个或多个 listen
指令的 default_server
参数引起的。您可能会发现此冲突指令的内容类似于:
listen 80 default_server;
如 nginx core module documentation for listen
所述:
The default_server
parameter, if present, will cause the server to become the default server for the specified address:port
pair. If none of the directives have the default_server
parameter then the first server with the address:port
pair will be the default server for this pair.
这意味着必须在您的配置中定义另一个文件或 server
块,并为端口 80 设置 default_server
。nginx 在 mysite.com
文件之前首先遇到该文件,因此请尝试删除或调整其他配置。
如果您正在努力寻找这些指令和参数的设置位置,请尝试如下搜索:
grep -R default_server /etc/nginx
如果您使用的是 Digital Ocean,这意味着您需要转到 /etc/nginx/sites-enabled/,然后使用 rm -R digitalocean 和默认
删除
它帮我修好了!
Pic of Console on Windows 10 using Bitvise
在终端执行此命令以查看侦听同一端口的冲突配置:
grep -R default_server /etc/nginx
OS Debian 10 + nginx。
就我而言,我将 "default" 页面取消链接为:
- cd/etc/nginx/sites-enabled
- 默认取消链接
- 服务 nginx 重启
在我的例子中,来自编辑器的垃圾文件导致了问题。
我的配置如下:
#...
http {
# ...
include ../sites/*;
}
在 ../sites
目录中,最初我有一个 default.config
文件。
但是,我错误地将重复文件保存为 default.config.save
和 default.config.save.1
。
删除它们解决了问题。
如果 davidjb 的回答没有显示多个 default_server 行,请检查多个包含指令。
您可能不小心将默认网站(或其他网站)包含了两次。
在我的例子中,在 /etc/nginx/nginx.conf
中注释掉通配符指令 include
有效
#include /etc/nginx/sites-enabled/*;
include /etc/nginx/sites-enabled/abcdef.com;
PS:根据上面的评论,如果只有一种配置(默认配置或自定义配置),这可能是一种解决方案
在我的错误日志中我得到
[emerg] 10619#0: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/mysite.com:4
在第 4 行我有:
server_name mysite.com www.mysite.com;
有什么建议吗?
您可能还有位于 /etc/nginx/sites-enabled
中的其他文件(例如 default
配置)需要删除。
此问题是由于重复提供给文件中一个或多个 listen
指令的 default_server
参数引起的。您可能会发现此冲突指令的内容类似于:
listen 80 default_server;
如 nginx core module documentation for listen
所述:
The
default_server
parameter, if present, will cause the server to become the default server for the specifiedaddress:port
pair. If none of the directives have thedefault_server
parameter then the first server with theaddress:port
pair will be the default server for this pair.
这意味着必须在您的配置中定义另一个文件或 server
块,并为端口 80 设置 default_server
。nginx 在 mysite.com
文件之前首先遇到该文件,因此请尝试删除或调整其他配置。
如果您正在努力寻找这些指令和参数的设置位置,请尝试如下搜索:
grep -R default_server /etc/nginx
如果您使用的是 Digital Ocean,这意味着您需要转到 /etc/nginx/sites-enabled/,然后使用 rm -R digitalocean 和默认
删除它帮我修好了!
Pic of Console on Windows 10 using Bitvise
在终端执行此命令以查看侦听同一端口的冲突配置:
grep -R default_server /etc/nginx
OS Debian 10 + nginx。 就我而言,我将 "default" 页面取消链接为:
- cd/etc/nginx/sites-enabled
- 默认取消链接
- 服务 nginx 重启
在我的例子中,来自编辑器的垃圾文件导致了问题。 我的配置如下:
#...
http {
# ...
include ../sites/*;
}
在 ../sites
目录中,最初我有一个 default.config
文件。
但是,我错误地将重复文件保存为 default.config.save
和 default.config.save.1
。
删除它们解决了问题。
如果 davidjb 的回答没有显示多个 default_server 行,请检查多个包含指令。
您可能不小心将默认网站(或其他网站)包含了两次。
在我的例子中,在 /etc/nginx/nginx.conf
中注释掉通配符指令 include
有效
#include /etc/nginx/sites-enabled/*;
include /etc/nginx/sites-enabled/abcdef.com;
PS:根据上面的评论,如果只有一种配置(默认配置或自定义配置),这可能是一种解决方案