Erro Nginj do Nodejs: (13: Permissão negada) ao conectar-se ao upstream [duplicado]

6

Estou tentando executar vários aplicativos Nodejs no servidor Nginx em execução no CentOS 7. Percebi que, quando executo um aplicativo Nodejs em algumas portas, recebo um erro 502 Bad Gateway no navegador, então verifiquei os logs de erros:

[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"

quando eu mudar o aplicativo para ouvir 8008 por exemplo, tudo está funcionando bem. Eu verifiquei permissões e se o processo está sendo executado como root e tudo parece ok. Eu joguei com o tempo limite também, mas sem resultado. Alguém pode ajudar?

    
por user1 07.10.2014 / 23:52

1 resposta

19

Por padrão, o SELinux permite que o servidor da Web faça conexões de saída para um conjunto limitado de portas.

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

Para corrigir o problema, basta adicionar seu próprio número de porta desejado à lista.

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

Em seguida, você verá o número da porta adicionado à lista e suas conexões deverão funcionar.

# semanage port --list
http_port_t                    tcp      7777, 80, 81, 443, 488, 8008, 8009, 8443, 9000
    
por 08.10.2014 / 17:49