2013-11-26 107 views
1

我使用uWsgi在這裏部署我django網站是我的uWsgi.iniuWsgi nginx的積分誤差

[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-datauwsgi運行運行爲root

+0

你的uwsgi日誌裏有什麼? – Jannis

回答

5

這是建議使用新的用戶對你的項目,不是root

的問題是在配置,應增加

plugin=python 

的權限,最好使用www數據的用戶/組:

uid = www-data 
gid = www-data 
chmod-socket = 777 
chown-socket = www-data 
0
location/{ 
    uwsgi_pass  unix:///var/run/uwsgi.sock; 
    include   uwsgi_params; 
    uwsgi_param  SCRIPT_NAME ''; 
} 
0

我對Django,uWSGI和nginx在CloudFront後面運行的組合也有類似的問題。事實證明,CloudFront中的路由表沒有像預期的那樣工作,所以一些回調沒有收到。

具體來說,路由「/」從「*」偷走了流量。

還有一個問題,我的Django服務器運行意外的代碼;作爲用戶登錄導致他們的用戶模型被改變,這是我之前沒有預測到的。所以是的,不要排除你的Django服務器可能合法繁忙,導致套接字超時。