2014-11-04 82 views
0

我有一個奇怪的問題,其中第一個反向代理網站工作正常,但如果即時通訊嘗試添加第二個site-enabled幾乎相同的設置只有幾個重大更改像server_name nginx不會啓動或重新加載。如果我刪除新的site-enabled它工作正常。Seccond nginx網站不工作

這裏工作站點代碼:

include /etc/nginx/conf.d/shop_header; 

server { 
    listen 80; 
    server_name www.classybrothers.com classybrothers.com; 

include /etc/nginx/conf.d/shop_etc; 

} 

shop_header:

server_names_hash_bucket_size 64; 

upstream shop { 
    server 127.0.0.1:2500; 
} 

server { 
    listen 80; 
    return 404; 
} 

shop_etc:

access_log /home/web/shop/logs/access.log; 
error_log /home/web/shop/logs/error.log; 

location/{ 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_set_header X-NginX-Proxy true; 

    proxy_pass http://shop/; 
    proxy_redirect off; 
} 

它工作正常。但是,如果我想添加我的第二個網站與子域和不同的端口nginx不會啓動。這裏是seccond網站的代碼:

include /etc/nginx/conf.d/ttt_header; 

server { 
    listen 80; 
    server_name www.ttt.classybrothers.com ttt.classybrothers.com; 

include /etc/nginx/conf.d/ttt_etc; 

} 

頭:

server_names_hash_bucket_size 64; 

upstream ttt { 
    server 127.0.0.1:3000; 
} 

server { 
    listen 80; 
    return 404; 
} 

等:

access_log /home/web/ttt/logs/access.log; 
error_log /home/web/ttt/logs/error.log; 

location/{ 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_set_header X-NginX-Proxy true; 

    proxy_pass http://ttt/; 
    proxy_redirect off; 
} 

我現在不能弄清楚這個問題了一會兒。如果有人遇到這個問題,建議我可以做些什麼來解決這個問題,那將會很棒。

編輯:問題解決了,它是server_names_hash_bucket_size 64;刪除它解決了問題。我的猜測是,如果一個網站已經運行,其他人不需要重複。

回答

0

當您的配置無效時,重新加載會生成一條錯誤消息,通常有助於解釋錯誤和位置。

兩個shop_headerttt_header定義server偵聽端口80,沒有server_name,從而成爲此端口的默認服務。

您不能有幾個server塊具有相同的listenserver_name值。

+0

我的nginx沒有生成任何消息,只是簡單地響應reaload命令。謝謝你的回答。 – Ramirex 2014-11-09 18:59:41

+0

只要給nservice文件一個'reload'命令,就可以向主進程發送一個SIGHUP信號。檢查該服務是否使用了正確的pid文件或手動發出信號並查看日誌。 – 2014-11-09 21:23:04