NGINX代理传递给NodeJS App:返回502错误

我试图设置NGINX作为我的NodeJS应用程序,它是住在127.0.0.1:3000的前端,但我无法解决这个502错误。 NGINX可以在本地访问http://dev.examplehttp://dev.example

dev.example(文件位于:/ etc / nginx / sites-available和符号链接到启用网站)

 upstream up_dev.example { server 127.0.0.1:3000; } server { listen 0.0.0.0:80; server_name dev.example example; access_log /var/log/nginx/dev.example.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://up_dev.example/; proxy_redirect off; } } 

error.log中

2014/09/17 19:38:26 [error] 1679#0:* 1 connect()失败(111:Connection refused)连接上游时,客户端:55.55.55.1,server:,request:“GET / HTTP / 1.1“,上游:$

也可能是SELinux阻止了连接,因为httpd_can_network_connect默认是closures的。

getsebool httpd_can_network_connect

检查是否打开。 如果没有,请通过运行将其打开

setsebool -P httpd_can_network_connect on

-P意味着持久的更改,所以即使在重新启动后,新的布尔值仍然有效。

拒绝连接意味着没有软件正在监听服务器上的端口3000。 您应该检查Node.JS是否运行正常,并且正在侦听端口3000。

 - proxy_pass http://up_dev.example/ + proxy_pass http://up_dev.example 

尝试一下