Назад | Перейти на главную страницу

Ошибка Nodejs Nginx: (13: в доступе отказано) при подключении к восходящему потоку

Я пытаюсь запустить несколько приложений Nodejs на сервере Nginx под управлением CentOS 7. Я заметил, что когда я запускаю приложение 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. Я тоже играл с таймаутами, но безрезультатно. Кто-нибудь может помочь?

По умолчанию SELinux позволяет веб-серверу устанавливать исходящие подключения только к ограниченному набору портов.

# 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