如何使用Linode NodeBalancer为Node.js应用程序设置NGINX反向代理,以避免出现502错误网关

avkwfej4  于 2023-02-12  发布在  Node.js
关注(0)|答案(1)|浏览(146)

我已经设置了Linode NodeBalancer来处理我的网站https://adamhelm.com的HTTPS流量,该网站侦听端口443。我还设置了nginx服务器,使用以下nginx配置将流量路由到端口3000上的Node.js应用程序:

listen 443;
    server_name www.adamhelm.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

当我试图访问我的网站https://adamhelm.com时,我的网络浏览器出现"502 Bad Gateway"错误。NGINX的错误日志显示,在尝试连接到http://45.79.140.133:3000上的上游服务器时出现"Permission denied"错误。与上游服务器的连接是从NodeBalancer通过IP地址192.168.255的专用连接进行的。142.
我可以通过主机的IP地址直接在http://45.79.140.133:3000访问应用程序,没有任何问题。
我正在寻求帮助以正确配置此设置。

db2dz4w8

db2dz4w81#

Node.js应用程序与NGINX的通信需要打开出站端口。任何希望利用NGINX作为带有Linode NodeBalancers的Node.js反向代理的人都应该知道这一点。
CentOS7的解决方案是:
Solution Reference URL

yum install policycoreutils-python 

semanage port --add --type http_port_t --proto tcp 8001

相关问题