2015-10-21 55 views
4

我的問題是我如何讓Nginx轉發一個域(www.example.com)流星應用程序在同一臺服務器上沒有ssl。流星的Nginx配置

詳細信息: 我正在嘗試使用Nginx在我自己的服務器上託管流星製作的應用程序。我檢查了大量我在網上找到的大量不同的配置文件(其中大部分都是過時的),但我似乎無法讓Nginx將我的域名轉發到端口3000,流星可以將其接收並處理Web頁。

最新配置的Nginx的代理一個端口是這樣的:

upstream default { 
     server 127.0.0.1:3000; 
} 

server { 
     listen 80; 
     server_name localhost; 

     location/{ 
       proxy_pass http://default/; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection "upgrade"; 
       proxy_set_header Host $http_host; 

       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; 
       proxy_set_header X-Forward-Proto http; 
       proxy_set_header X-Nginx-Proxy true; 

       proxy_redirect off; 
     } 
} 

我稍微它修改成什麼,我相信這是我的設置是正確的。我在Nginx中使用默認配置文件,並使用「流星創建html」在/ usr/share/nginx/html中創建了流星應用。

我知道使用所有這些默認設置是壞習慣,但我只是試圖讓流星應用程序先運行起來。

我應該安裝所有依賴項:meteor,nodejs,mongodb和nginx。

很多最新的nginx配置我發現使用SSL,我不打算使用。我不知道如何修改它們以滿足我所需要的。

有人能解釋爲什麼這個配置不起作用,或者我錯過了讓Nginx指向我的流星應用程序www.example.com:3000?

在此先感謝。

P.S.

我已經能夠使用虛擬機獲得相同的設置,使用完全相同的配置文件。對於我錯過了一步,我感到不知所措。

+0

我使用Nginx的1.4。6,以防有所作爲。 – Jared

+0

*爲什麼這個配置不起作用*你能解釋更多嗎?錯誤日誌? – Anatoly

+0

我從網址而不是預期的流星應用程序得到一個502壞的網關錯誤。 我應該查看哪些錯誤日誌以查看是否有其他問題出錯? – Jared

回答

2

問題是proxy_pass指令中的尾部反斜槓。它應該是proxy_pass http://default;。感謝anatoly指出。

UPDATE: Nginx documentation是有點混亂,但突出而不URI與/ proxy_pass之間的差:

URI傳遞給服務器如下請求:

如果proxy_pass指令是然後當一個 請求被傳遞給服務器時,與該位置匹配的標準化請求URI 的部分被指令中指定的URI替換:

location /name/ { 
    proxy_pass http://127.0.0.1/remote/; 
} 

如果沒有URI指定proxy_pass,URI傳遞給 在作爲由客戶機發送的相同形式的服務器的請求時,原始 請求被處理時,或完整的歸一化的請求URI被傳遞 處理改變URI時:

location /some/path/ { 
    proxy_pass http://127.0.0.1; 
}