(13: разрешение отказано) при подключении к upstream:[nginx]
Я работаю с настройкой проекта django с nginx и gunicorn. Пока я получаю доступ к моему порту gunicorn mysite.wsgi:application --bind=127.0.0.1:8001 в nginx server я получаю следующую ошибку в моем файле журнала ошибок.
2014/05/30 11:59:42 [crit] 4075#0: *6 connect() to 127.0.0.1:8001 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8001/", host: "localhost:8080"
мой nginx.conf file
server {
listen 8080;
server_name localhost;
access_log /var/log/nginx/example.log;
error_log /var/log/nginx/example.error.log;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
}
в HTML-странице, Я получаю 502 Bad Gateway.
какую ошибку я делаю?
6 ответов:
у меня была аналогичная проблема с получением Fedora 20, Nginx, Node.js, и Призрак (блог) для работы. Оказывается, моя проблема была из-за настройки SELinux.
Это должно решить проблему:
setsebool -P httpd_can_network_connect 1подробности
Я проверил наличие ошибок в журналах SELinux:
sudo cat /var/log/audit/audit.log | grep nginx | grep deniedи обнаружил, что выполнение следующих команд исправило мой вопрос:
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.ppссылки:
http://blog.frag-gustav.de/2013/07/21/nginx-selinux-me-mad/
https://wiki.gentoo.org/wiki/SELinux/Tutorials/Where_to_find_SELinux_permission_denial_details
http://wiki.gentoo.org/wiki/SELinux/Tutorials/Managing_network_port_labels
Я тоже столкнулся с такой проблемой. Другим решением является переключение логического значения SELinux для httpd network connect на
on(Nginx использует метку httpd).setsebool httpd_can_network_connect onдля сохранения изменений используйте флаг-P.
setsebool httpd_can_network_connect on -Pвы можете увидеть список всех доступных логических значений SELinux для httpd с помощью
getsebool -a | grep httpd
Я решить мою проблему, запустив мой nginx в качестве моей нынешней работе пользователей, что составляет
mulagala.По умолчанию пользователь какnginxв своем .Мы можем найти эту линию в верхней части .user nginx;измените это на ваше текущее рабочее имя пользователя, например
user mulagala;
была аналогичная проблема на Centos 7. Когда я попытался применить раствор, предписанный Сорином, я начал двигаться циклически. Сначала мне было отказано в разрешении {писать}. Потом, когда я решил, что у меня есть разрешение { подключить } отказано. Затем снова вернитесь к разрешению {write } denied.
после ответа @Sid выше проверки флагов с помощью
getsebool -a | grep httpdи переключая их, я обнаружил, что в дополнение к httpd_can_network_connect отключен. http_anon_write также был отключен в результате отказ писать и отказано {подключить}type=AVC msg=audit(1501830505.174:799183): avc: denied { write } for pid=12144 comm="nginx" name="myroject.sock" dev="dm-2" ino=134718735 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:default_t:s0 tclass=sock_fileполучено с помощью sudo cat/var/log/audit / аудит.log | grep nginx / grep отказано как объяснялось выше.
поэтому я решил их по одному, переключая флаги по одному.
setsebool httpd_can_network_connect on -Pзатем запуск команд, указанных @sorin и @Joseph выше
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.ppв основном вы можете проверить разрешения, установленные на setsebool и соотнести это с ошибкой, полученной из аудит grepp подработок'.nginx в лог, отказано
Я тоже столкнулся с такой проблемой. Я использую Nginx с HHVM, ниже Решение исправлена моя проблема:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/etc/nginx/fastcgi_temp(/.*)?" sudo restorecon -R -v /etc/nginx/fastcgi_temp
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.pp
Comments