2016-03-01 34 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

相关问题