NGINX 代理传递到 NodeJS 应用程序:返回 502 错误

NGINX 代理传递到 NodeJS 应用程序:返回 502 错误

我正在尝试将 NGINX 设置为我的 NodeJS 应用程序的前端,该应用程序在 上线127.0.0.1:3000,但我无法解决此 502 错误。NGINX 可在http://55.55.55.5/或上本地访问http://dev.example

dev.example(文件位于:/etc/nginx/sites-available 并符号链接到 sites-enabled)

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;
    }
 }

错误日志

2014/09/17 19:38:26 [错误] 1679#0:*1 connect() 连接到上游时失败(111:连接被拒绝),客户端:55.55.55.1,服务器:,请求:“GET / HTTP/1.1”,上游:$

答案1

也可能是 SELinux 阻止了连接,因为httpd_can_network_connect默认情况下它是关闭的。

getsebool httpd_can_network_connect

检查是否已打开。如果没有,请通过运行来打开它

setsebool -P httpd_can_network_connect on

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

答案2

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

答案3

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

尝试一下

相关内容