我正在使用 Nginx 和 Gunicorn 配置 Django 项目。

当我访问我的端口时gunicorn mysite.wsgi:application --bind=127.0.0.1:8001在 Nginx 服务器中,我在错误日志文件中收到以下错误;

2014/05/30 11:59:42 [crit] 4075"http://127.0.0.1:8001/",主机:“本地主机:8080”

下面是我的内容nginx.conf文件;

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

我犯了什么错误?

答案

免责声明

在运行之前,请确保您的用例没有安全隐患。

回答

我在使用 Fedora 20、Nginx、Node.js 和 Ghost(博客)时遇到了类似的问题。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

选项

setsebool -P httpd_can_network_relay 1

https://security.stackexchange.com/questions/152358/difference- Between-selinux-booleans-httpd-can-network-relay-and-httpd-can-net

参考

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

来自: stackoverflow.com