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例如一切工作正常。 我检查了权限,如果进程是以超级用户身份运行,并且一切正常。 我玩超时,但没有结果。 谁能帮忙?

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

 # 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