uWsgi nginx集成错误

时间:2013-11-26 08:52:08

标签: django nginx uwsgi

我正在使用uWsgi部署我的django网站,这是uWsgi.ini

[uwsgi]
socket=/var/run/uwsgi.sock
virtualenv=/root/edupalm/env/
chdir=/root/edupalm/edupalm
master=True
workers=8
pidfile=/var/run/uwsgi-master.pid
max-requests=5000
module=edupalm.wsgi:application

并使用nginx,这是我的配置:

server {
    listen       9000;
    server_name  162.243.146.127;
    access_log  /var/log/nginx/edupalm_access.log;
    error_log   /var/log/nginx/edupalm_error.log;

    location /static/ {
        alias /root/edupalm/edupalm/static/;
    }
    location / {
        uwsgi_pass      unix:///var/run/uwsgi.sock;
    }

}

但我有502 Bad Gateway

这是日志:

nginx的:

2013/11/26 08:31:09 [error] 1758#0: *57 upstream prematurely closed connection while reading response header from upstream, client: 197.160.112.183, server: 162.243.146.127, request: "GET /admin HTTP/1.1", upstream: "uwsgi://unix:///var/run/uwsgi.sock:", host: "162.243.146.127:9000"

uwsgi:

-- unavailable modifier requested: 0 --

nginx正在用户www-data上运行,uwsgi正在root

运行

4 个答案:

答案 0 :(得分:5)

建议您为项目使用新用户,而不是root

问题在于配置,你应该添加

plugin=python

对于权限,最好使用www-data user / group:

uid = www-data
gid = www-data
chmod-socket = 777
chown-socket = www-data

答案 1 :(得分:1)

看起来您使用的是分发包而不是官方的uWSGI源。只需在配置

中加载(在安装之后)带有plugin = python的python插件

http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html

答案 2 :(得分:0)

location / {  
    uwsgi_pass      unix:///var/run/uwsgi.sock;  
    include         uwsgi_params;  
    uwsgi_param     SCRIPT_NAME '';  
}

答案 3 :(得分:0)

对于在CloudFront后面运行的Django,uWSGI和nginx的组合,我同样遇到了这个问题。事实证明,CloudFront中的路由表没有按预期运行,因此没有收到一些回调。

具体而言,路线“/”从“*”偷走了流量。

另一个问题是我的Django服务器运行了意外的代码;作为用户登录导致他们的用户模型被更改,我出于某种原因没有预测到。所以是的,不要排除你的Django服务器可能合法地忙,导致套接字超时。