Nodejs Nginx 错误:(13:权限被拒绝)连接到上游时

Nodejs Nginx 错误:(13:权限被拒绝)连接到上游时

我正在尝试在 CentOS 7 上运行的 Nginx 服务器上运行多个 Nodejs 应用程序。我注意到当我在某些端口上运行 Nodejs 应用程序时,浏览器中出现 502 Bad Gateway 错误,因此我检查了错误日志:

[notice] 12806#0: signal process started
[crit] 12807#0: *13 connect() to 127.0.0.1:7777 failed (13: Permission denied) while connecting to upstream, client: **.**.99.58, server: myapp.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:7777/", host: "myapp.com"
[crit] 12807#0: *13 connect() to [::1]:7777 failed (13: Permission denied) while connecting to upstream, client: **.**.99.58, server: myapp.com, request: "GET / HTTP/1.1", upstream: "http://[::1]:7777/", host: "myapp.com"

例如,当我将应用程序更改为监听 8008 时,一切都运行正常。我检查了权限,并检查了进程是否以 root 身份运行,一切似乎都正常。我也尝试了超时,但没有结果。有人能帮忙吗?

答案1

默认情况下,SELinux 仅允许 Web 服务器与有限的一组端口建立出站连接。

# semanage port --list
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

要解决这个问题,您只需将自己想要的端口号添加到列表中。

# semanage port --add --type http_port_t --proto tcp 7777

然后您将看到添加到列表中的端口号,并且您的连接应该可以正常工作。

# semanage port --list
http_port_t                    tcp      7777, 80, 81, 443, 488, 8008, 8009, 8443, 9000

答案2

我在下面的链接中回应了这种情况。我成功了

https://stackoverflow.com/a/77552458/6727650

相关内容