Django和WSGI-权限被拒绝

时间:2018-08-12 07:09:33

标签: django apache mod-wsgi wsgi

我有一个这样的配置:

CentOS 7-Varnish(缓存服务器)/ Nginx(反向代理)/ Apache

这是我的Django配置:

WSGISocketPrefix /var/run/wsgi

<VirtualHost ip:8181>
    ServerName domain.ir
    ServerAlias www.domain.ir
    ServerAdmin info@domain.ir
    DocumentRoot /var/www/DjangoProject
    UseCanonicalName On
    ScriptAlias /cgi-bin/ /var/www/DjangoProject/cgi-bin/

    <Directory /var/www/DjangoProject/DjangoProject>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    Alias /statics/ "/var/www/DjangoProject/statics/"
    <Directory "/var/www/DjangoProject/statics">
        Require all granted
    </Directory>

    WSGIDaemonProcess DjangoProject python-path=/usr/lib/python3.4/site-packages python-home=/var/www/DjangoProject user=djangouser socket-user=djangouser
    WSGIProcessGroup DjangoProject
    WSGIApplicationGroup %{GLOBAL}
    WSGIScriptAlias / /var/www/DjangoProject/DjangoProject/wsgi.py

    ErrorLog /var/log/apache/django-error.log

</VirtualHost>

当我想打开我的网站时,apache日志中有一个权限被拒绝的错误:

[wsgi:error] [pid 2131:tid 140344565954304] (13)Permission denied: [client 77.104.92.126:38982] mod_wsgi (pid=2131): Unable to connect to WSGI daemon process 'TiTar_API' on '/var/run/wsgi.2128.0.1.sock' as user with uid=99.

我知道uid = 99是nobody用户。这里发生了什么?为什么该用户要连接WSGI套接字? WSGIDaemonProcess 中的usersocket-user属性的用途是什么?

编辑:我也看到了其他问题,但我认为还有另一个问题(没有用户)

Django-WSGI setup causing permission denied issues on CentOS 7

Django + Apache + mod_wsgi permission denied

https://serverfault.com/questions/357804/apache2-mod-wsgi-django-named-virtual-servers

0 个答案:

没有答案