2016-03-01 48 views
0

我試圖運行一個節點應用程序(使用快速)端口3000與Nginx。Nginx的服務節點的應用程序,然後隨機拋出502錯誤

這是我的網站nginx.conf:

server { 
     listen [::]:80 ipv6only=off; 
     server_name website.dev; 

     location/{ 
       proxy_pass http://127.0.0.1:3000; 
       proxy_set_header Host $http_host; 
     } 
} 

我正在通過nodemon任務的節點的應用程序。我也正在運行一個吞吐量較低的CSS任務,browserify,babelify等任務。

我遇到的問題是,nginx將爲節點應用程序罰款約30秒,然後(顯然是隨機)開始服務502錯誤。在這些時間內,nodemon任務不會停止,並且吞吐任務也不會運行。

我找不到在節點應用程序本身發生的任何錯誤,沒有任何內容顯示在nginx的error.log或access.log中。

我已經驗證該節點的應用程序實際上是在端口3000上運行,並且nginx的是偵聽端口80

這裏是netstat -nlt輸出:

Proto Recv-Q Send-Q Local Address   Foreign Address   State  
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN  
tcp  0  0 0.0.0.0:34490   0.0.0.0:*    LISTEN  
tcp  0  0 0.0.0.0:111    0.0.0.0:*    LISTEN  
tcp6  0  0 :::22     :::*     LISTEN  
tcp6  0  0 :::3000     :::*     LISTEN  
tcp6  0  0 :::111     :::*     LISTEN  
tcp6  0  0 :::80     :::*     LISTEN  
tcp6  0  0 :::42481    :::*     LISTEN 

最後,一對夫婦後幾分鐘後,nginx重新開始爲應用程序提供約30秒的時間,然後重複。

如果我運行curl localhost:3000我得到我的節點應用程序。即使nginx仍然會拋出502錯誤。

回答

0

這竟然是一具殭屍流浪漢框。

我注意到在運行vagrant halt後,我仍然得到了nginx 502頁面。所以我去尋找另一個流浪漢安裝。

原來這是一個仍在運行的流浪者箱子,沒有出現在vagrant global-status上,而且沒有被流浪經理髮現。因爲任何原因,主機在隨機引用的框之間切換,這就是爲什麼我隨機從殭屍框中獲取502錯誤。

刪除.vagrant/machines/中的方框解決了這個問題。

2

工作的nginx的conf文件看起來像下面,

upstream project{ 
     server 127.0.0.1:3000; 
     #you can add multiple nodes here for load balancing 
} 
server{ 
      listen 80; 
      server_name website.dev; 
      location/{ 
        proxy_pass http://project; 
      } 

    } 
+0

不幸的是,即使使用你的conf文件,它仍然表現得完全一樣。 – Adviov

+0

但是,我看到了,它沒有幫助。我沒有爲應用程序提供服務的問題,問題隨502錯誤的隨機性而出現。 – Adviov

相關問題