我很困惑。 我犯错的地方?
项目文件位置:
/home/username/www
/etc/uwsgi/sites/mysite.com
[uwsgi] project = www base = /home/username uid = www-data gid = www-data chdir = %(base)/%(project) home = %(base)/.virtualenvs/%(project) module = %(project).wsgi:application master = true processes = 5 socket = %(base)/%(project)/%(project).sock chmod-socket = 664 vacuum = true
/etc/init/uwsgi.conf:
description "uWSGI application server in Emperor mode" start on runlevel [2345] stop on runlevel [!2345] respawn exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
/etc/nginx/sites-available/mysite.com:
server { listen 80; error_log /var/log/nginx/mysite_error.log warn; server_name www.mysite.com mysite.com; charset utf-8; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/username/www; } location / { include uwsgi_params; uwsgi_pass unix:/home/username/www/www.sock; } location /media { alias /home/username/www/media; } }
我得到502错误的网关! 我如何解决这个问题?
在你的uwsgiconfiguration中你指定了socket:
socket = 127.0.0.1:8000
在nginxconfiguration中,你有:
uwsgi_pass unix:/home/username/www/www.sock;
所以,你没有正确的套接字configuration。
您必须将其更改为TCP套接字或Unix套接字。 Unix套接字是首选,所以你应该在你的uwsgiconfiguration中有这个:
socket = /home/username/www/www.sock;
或者甚至更好,在/var/run/uwsgi.sock有套接字文件。
我发现问题。 我安装uwsgi两次,通过pip和通过apt-get了。
所以uwsgi指向错误的安装,并没有访问创build套接字文件。