Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django (13:权限被拒绝)连接到上游时:[nginx]_Django_Python 2.7_Nginx_Gunicorn - Fatal编程技术网

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

Django (13:权限被拒绝)连接到上游时:[nginx],django,python-2.7,nginx,gunicorn,Django,Python 2.7,Nginx,Gunicorn,我正在使用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”,上游:“h

我正在使用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
文件的内容

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坏网关


我犯了什么错误?

我以当前登录用户mulagala的身份运行Nginx,解决了我的问题

默认情况下,用户nginx定义在
nginx.conf
文件的最顶部,如下所示

user nginx; # Default Nginx user
将nginx更改为当前用户的名称-这里是mulagala

然而,这可能无法解决实际问题,实际上可能会产生偶然的副作用

有关有效的解决方案,请参阅。

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

答复 我在让Fedora20、Nginx、Node.js和Ghost(blog)工作时遇到了类似的问题。原来我的问题是由于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
并发现运行以下命令修复了我的问题:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/etc/nginx/fastcgi_temp(/.*)?"

sudo restorecon -R -v /etc/nginx/fastcgi_temp
选项2(未经测试,但可能更安全)

工具书类


我也遇到了这个问题。另一种解决方案是将httpd网络连接的SELinux布尔值切换到上的
(Nginx使用httpd标签)

要使更改保持不变,请使用-p标志

setsebool httpd_can_network_connect on -P
您可以使用

getsebool -a | grep httpd

我也遇到过这个问题。我将Nginx与hvm一起使用,下面的解决方案解决了我的问题:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/etc/nginx/fastcgi_temp(/.*)?"

sudo restorecon -R -v /etc/nginx/fastcgi_temp

在Centos 7上也有类似的问题。当我尝试应用索林所规定的解决方案时,我开始循环往复。首先,我的权限{write}被拒绝。然后,当我解决了,我有一个权限{connectto}被拒绝。然后再次返回到权限{write}被拒绝

按照上面的@Sid回答,使用
getsebool-a | grep httpd
检查标志并切换它们,我发现除了httpd之外,can\u网络连接也处于关闭状态。http\u anon\u写入也被关闭,导致权限拒绝写入和权限拒绝{connectto}

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/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'ing'audit.log nginx获得的错误关联起来,拒绝

  • /etc/nginx/nginx.conf
  • 将所有权更改为用户
  • 现在看魔术。

    如果nginx上api网关代理传递的centos api url上出现“502坏网关”错误,请运行以下命令来解决此问题

    sudo setsebool -P httpd_can_network_connect 1
    

    13在centos服务器上连接到UpstreamGinx时,权限被拒绝-


    setsebool-p httpd可以连接网络1

    另一个原因可能是:;您正在使用代理通过nginx访问应用程序,但您没有为使用gunicorn的代理添加
    gunicorn.sock
    文件

    您需要在nginx配置中添加代理文件路径

    location / {
            include proxy_params;
            proxy_pass http://unix:/home/username/myproject/gunicorn.sock;
        }
    
    这是一个很好的教程,它一步一步地实现了这一点

    注意:如果您没有创建
    anyname.sock
    文件,您必须先创建if,可以使用上述方法或任何其他方法或教程来创建它

  • 首先,请参见被拒绝的内容:
  • 就我而言,它在CentOS7上有帮助:
  • 在看到什么是启用后:

    getsebool -a | grep httpd
    

    谢谢,这也解决了我的问题,我在CentOS 7上。谢谢。我需要
    yum安装policycoreutils-python
    ,以便首先获得
    audit2allow
    。参考:在Fedora23上,安装policycoreutils python时未提供命令
    audit2allow
    。经过一些研究,我发现您应该安装devel包
    yum安装policycoreutils-devel
    。参考:这应该在许多unix操作系统的cherrpy和nginx文档中,因为在看完所有文档之后,我花了8个小时试图弄清楚它!请注意,如果打开,设置httpd_can_network_connect可能会对面向公众的服务器造成严重的安全风险。看到了,这就行了,谢谢。我从CentOS 6.5->6.7进行了更新,在更新过程中它必须将默认值设置为off,因为它在更新之前工作正常。简单修复。请注意,如果打开,设置httpd_can_network_connect可能会对面向公众的服务器造成严重的安全风险。看到了,没有。没有帮助我认为您不需要使用gunicorn.sock文件。这是可选的。如果需要,您应该能够在不使用Gunicorn.sock的情况下设置Nginx、Gunicorn和Django。
    sudo cat /var/log/audit/audit.log | grep nginx | grep denied
    
    type=AVC msg=audit(1618940614.934:38415): avc:  denied  { connectto } for
    pid=18016 comm="nginx" path="/home/deployer/project/tmp/sockets/puma.sock" scontext=system_u:system_r:httpd_t:s0
    tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    tclass=unix_stream_socket permissive=1
    
    sudo setenforce 0
    
    setsebool httpd_can_network_connect on -P
    setsebool httpd_can_network_relay on -P
    
    getsebool -a | grep httpd
    
    httpd_anon_write --> off
    httpd_builtin_scripting --> on
    httpd_can_check_spam --> off
    httpd_can_connect_ftp --> off
    httpd_can_connect_ldap --> off
    httpd_can_connect_mythtv --> off
    httpd_can_connect_zabbix --> off
    httpd_can_network_connect --> on
    httpd_can_network_connect_cobbler --> off
    httpd_can_network_connect_db --> on
    httpd_can_network_memcache --> off
    httpd_can_network_relay --> on
    httpd_can_sendmail --> off
    httpd_dbus_avahi --> off
    httpd_dbus_sssd --> off
    httpd_dontaudit_search_dirs --> off
    httpd_enable_cgi --> off
    httpd_enable_ftp_server --> off
    httpd_enable_homedirs --> off
    httpd_execmem --> off
    httpd_graceful_shutdown --> on
    httpd_manage_ipa --> off
    httpd_mod_auth_ntlm_winbind --> off
    httpd_mod_auth_pam --> off
    httpd_read_user_content --> off
    httpd_run_ipa --> off
    httpd_run_preupgrade --> off
    httpd_run_stickshift --> off
    httpd_serve_cobbler_files --> off
    httpd_setrlimit --> off
    httpd_ssi_exec --> off
    httpd_sys_script_anon_write --> off
    httpd_tmp_exec --> off
    httpd_tty_comm --> off
    httpd_unified --> off
    httpd_use_cifs --> off
    httpd_use_fusefs --> off
    httpd_use_gpg --> off
    httpd_use_nfs --> off
    httpd_use_openstack --> off
    httpd_use_sasl --> off
    httpd_verify_dns --> off