2013-06-28 45 views
0

我有兩個IP與我的VPS相關聯,並且試圖將其設置爲服務兩個節點應用。下面是我的配置:使用nginx爲來自獨特IP的多個應用提供服務

在/ etc/nginx的/啓用的站點 - /域1:

upstream app_domain1 { 
     server 127.0.0.1:4000; 
} 

server { 
     listen 0.0.0.0:80; 
     server_name IP1.xxx.xxx.xxx; 
     access_log /var/log/nginx/domain1.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-Nninx-Proxy true; 

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

而且在/ etc/nginx的/ /域2

upstream app_domain2 { 
     server 127.0.0.1:3000; 
} 

server { 
     listen 0.0.0.0:80; 
     server_name IP2.xxx.xxx.xxx; 
     access_log /var/log/nginx/domain2.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-Nninx-Proxy true; 

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

並啓用站點,在/ etc/nginx的/啓用站點-,我跑:

ln -s /etc/nginx/sites-available/domain1 domain1 
ln -s /etc/nginx/sites-available/domain2 domain2 

現在,當我去到/ var/WWW/domain1的和正確的端口上運行 「節點app.js」,我可以訪問releva nt的IP地址,並看到應用程序正在運行,但domain2的情況並非如此(我檢查到它在該配置的正確端口上運行。該請求剛剛超時 - 根本沒有響應。

那麼我該如何解決這個問題呢?

更新:

如果我直接去港口,我看到這兩個IP地址都可用的應用程序,所以:

IP1.xxx.xxx.xxx:4000讓我對DOMAIN1

應用

IP1.xxx.xxx.xxx:3000讓我對域2

應用

IP2.xxx.xxx.xxx:4000給我的應用程序的DOMAIN1

IP2.xxx.xxx.xxx:3000讓我對域2

所以它把每個IP地址相同的應用程序。

+0

,並APP2應對? – moka

+0

如果我這樣做,我可以看到應用程序,但是......看到更新。 – babbaggeii

回答

0

server_name只接受域而不接受IP地址。

你有代理頭錯字錯,更改此:

proxy_set_header X-Nninx-Proxy true; 

這一點:如果你直接去IP與端口3000

proxy_set_header X-NginX-Proxy true; 
+0

啊,所以它根本沒有使用server_name。有沒有辦法做到這一點與IP而不是域? – babbaggeii

+1

此資源似乎認爲可以使用IP地址:http://nginx.org/en/docs/http/server_names.html「如果有人使用IP地址而不是服務器名稱發出請求,則」主機「請求標頭字段將包含IP地址,並且可以使用IP地址作爲服務器名稱來處理請求」 – babbaggeii

+0

您需要有兩個IP在您的控制之下。第一個IP將是我假設的服務器的直接IP地址,另一個將是另外一臺帶有另一個代理的機器,用於執行掩碼而不是重定向。那麼它應該工作。 以及嘗試設置'聽80;'沒有0.0.0.0(但不應該影響任何東西)。 – moka

相關問題