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

Я пытаюсь запустить несколько приложений Nodejs на сервере Nginx, работающем на CentOS 7. Я заметил, что, когда я запускаю приложение Nodejs на некоторых портах, я получаю 502 ошибки Недопустимого шлюза в браузере, таким образом, я проверил журналы ошибок:

[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, например, все хорошо работает. Я проверил полномочия и если процесс работает как корень, и все кажется хорошо. Я играл с тайм-аутами также, но никаким результатом. Кто-либо может помочь?

6
задан 8 October 2014 в 00:52
1 ответ

По умолчанию 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
19
ответ дан 3 December 2019 в 00:00

Теги

Похожие вопросы