使用Nginx,我为一个服务器创建了一个多域设置,该服务器由四个独立站点组成。当我启动Nginx时,我收到一条错误消息,并且网站似乎混淆了,因为输入一个网址会导致其他网站之一。
显示错误消息 -
Restarting nginx: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
nginx.
我已经在/ sites-available -
下的各自文件中以类似的方式设置了所有四个域server {
listen 80;
root /var/www/example.com/public_html;
index index.php index.html index.htm;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ /index.html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
我已经检查过,并且/ sites-enabled中没有默认文件。猜测Nginx主配置中可能存在错误设置,但不确定要查找的内容。
答案 0 :(得分:9)
您的nginx.conf
从您在include指令中的路径加载其外部服务器文件。
如果您在include /etc/nginx/conf.d/*.conf;
中有一个文件且其符号链接到include /etc/nginx/sites-enabled
,则会将该文件加载两次会导致该错误。
答案 1 :(得分:3)
我的本地机器上的Ubuntu / nginx / gunicorn / django 1.9网站遇到了同样的问题。我的/ etc / nginx / sites-enabled中有两个nginx文件。删除任何一个允许剩余的站点工作。最终将这两个文件放到两个站点中的一个。我不确定它是如何选择的。
所以在查看了几个堆栈溢出问题而没有找到解决方案之后我去了http://nginx.org/en/docs/http/request_processing.html
最终您可以在一个启用站点的文件中拥有多个服务器,因此我更改为:
server {
listen 80;
server_name joelgoldstick.com.local;
error_log /var/log/nginx/joelgoldstick.com.error.log debug;
location / {
proxy_pass http://127.0.0.1:8002;
}
location /static/ {
autoindex on;
alias /home/jcg/code/python/venvs/jg18/blog/collect_static/;
}
}
server {
listen 80;
server_name cc-baseballstats.info.local;
error_log /var/log/nginx/baseballstats.info.error.log debug;
location / {
proxy_pass http://127.0.0.1:8001;
}
location /static/ {
autoindex on;
alias /home/jcg/code/python/venvs/baseball/baseball_stats/collect_static/;
}
}
我现在可以在本地访问我的两个网站
答案 2 :(得分:2)
如果有/etc/nginx/sites-enabled/
等临时文件,请查看~default
目录。删除它并解决问题。
来源:@OmarIthawi nginx error "conflicting server name" ignored
答案 3 :(得分:1)
在我的情况下,没有网站启用也没有双重包括......
解决方案是避免多个引用(如果您将所有conf.d文件作为一个整体考虑)以“listen 80”和“server_name”引用...
在我的情况下,default.conf和kibana.conf都包含了对这些人的引用...我在默认情况下评论了一个并解决了问题!
我的2美分......