(13:权限被拒绝)连接到上游时:[nginx]

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

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

2014/05/30 11:59:42[crit]4075#0:*6 connect()到127.0.0.1:8001在连接到上游时失败(13:权限被拒绝),客户端:127.0.0.1,服务器:localhost,请求:“GET/HTTP/1.1”,上游:“http://127.0.0.1:8001/,主机:“本地主机:8080”

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

服务器{
听8080;
服务器名称localhost;
访问_log/var/log/nginx/example.log;
error\u log/var/log/nginx/example.error.log;
地点/{
代理通行证http://127.0.0.1:8001;
$remote\u addr的代理\u集\u头X转发;
代理设置头主机$http\U主机;
}
}

在HTML页面中,我得到了502坏网关

我犯了什么错误

免责声明

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

答复

我在让Fedora20、Nginx、Node.js和Ghost(blog)工作时遇到了类似的问题。原来我的问题是由于SELinux引起的

这应该可以解决问题:

setsebool-P httpd\u can\u网络\u连接1

细节

我检查了SELinux日志中的错误:

sudo cat/var/log/audit/audit.log | grep nginx | grep拒绝

并发现运行以下命令修复了我的问题:

sudo cat/var/log/audit/audit.log | grep nginx | grep denied | audit2allow-M mynginx
sudo semodule-i mynginx.pp

选项2(未经测试,但可能更安全)

setsebool-P httpd\u can\u网络\u继电器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

发表评论