2012-07-11 32 views
68
server { 
    #listen 80; ## listen for ipv4; this line is default and implied 
    #listen [::]:80 default ipv6only=on; ## listen for ipv6 

    #root /usr/share/nginx/www; 

root /home/ubuntu/node-login; 
    # Make site accessible from 
    server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com; 

location /{ 
    proxy_pass http://127.0.0.1:8000/; 
    proxy_redirect off; 
} 

}nginx的错误“矛盾的服务器名”忽略

这导致nignx错误[警告]冲突的服务器名称“EC2 ......”上0.0.0.0:80忽略 我不明白,任何解释赞赏。谢谢。

+0

似乎有一个默认的默认0.0.0.0:80,明确加入它为我工作。听ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com:80;后面跟着server_name指令工作。 – user1447121 2012-07-11 17:24:57

+0

检查链接到“/ etc/nginx/sites-enabled/”的'/ etc/nginx/sites-available/'。这里的其他文件可能包含重复或冲突的配置。 – hanxue 2015-12-23 10:36:39

回答

115

我假设你正在运行一个Linux,并且你正在使用gEdit来编辑你的文件。在/etc/nginx/sites-enabled中,它可能留下临时文件,例如default~(看~)。

根据您的编辑器,该文件可能被命名为.save或类似的东西。只需运行$ ls -lah即可查看哪些文件无意存在并将其删除(谢谢@Tisch)。

删除这个文件,它会解决你的问题。

+0

在Ubuntu 12.04 x86_64 + nginx – 2013-01-10 05:16:04

+1

上解决了我的问题,你能澄清一下吗?在我的 /etc/nginx/sites-enabled 只有“默认” 文件夹中没有看到任何“default〜”文件。 – 2014-01-10 05:27:01

+0

@DavidSaintloth它为我和OP工作。这是问题的一个来源,也可能是其他问题。但是为了确保你真的没有这个文件:'$ ls -alF/etc/nginx/sites-enabled'通常它不会显示,除非你特意要求它,因为它是一个隐藏/ tmp文件。 – 2014-01-11 17:09:19

18

你还有另一个server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com在配置的某个地方。

+0

我检查了,没有找到任何。当我删除“ec2_xxx ...”时它不会发出此警告。在nginx配置中是否有默认的0.0.0.0:80? – user1447121 2012-07-11 17:06:47

+0

[官方文档](http://nginx.org/r/listen):'default:listen *:80 | *:8000;' – VBart 2012-10-08 20:06:29

+2

这就是我的,但它是'localhost'。 – Rohmer 2014-11-20 19:22:56

8

应该只有一个本地主机定义,检查网站启用或nginx.conf。

+4

我在两个独立的* .conf文件中有两个相同的“server_name”指令。谢谢。 – 2016-04-05 04:24:23

+0

@FelipeAlvarez不客气 – Marin 2016-04-06 03:53:14

+0

这也解决了我的问题。我在不同的* .conf文件中放置了2个相同的服务器块。谢谢! – 2017-05-11 10:25:32