2012-07-11 52 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