Django + Nginx + uWSGI = 504网关超时

Lea*_*chy 14 python django nginx uwsgi

我正在运行Ubuntu 10.04,Django 1.3,Nginx 0.8.54和uWSGI 0.9.7.

Nginx和uWSGI都加载没有错误.但是,当您访问我的站点时,它会持续很长时间,然后最终加载"504网关超时"错误.

这是我的Nginx虚拟主机配置文件:

server {
listen          80;
server_name     www.mysite.com mysite.com;
error_log       /home/mysite/log/error.log;
access_log      /home/mysite/log/access.log;

location / {
    auth_basic  "Restricted";
    auth_basic_user_file    /home/mysite/public/passwd;
    include uwsgi_params;
    uwsgi_pass unix:///home/mysite/public/myapp.sock;
}

location /media {
    alias /home/mysite/public/myapp/media;
}


error_page  401  /coming_soon.html;

location /coming_soon.html {
    root /home/mysite/public/error_pages/401;
}

location /401/images {
    alias /home/mysite/public/error_pages/401/images;
}

location /401/style {
    alias /home/mysite/public/error_pages/401/style;
}
Run Code Online (Sandbox Code Playgroud)

}

我的站点日志显示:

SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request / !!!
Run Code Online (Sandbox Code Playgroud)

我的错误日志显示:

upstream timed out (110: Connection timed out) while reading response header from upstream
Run Code Online (Sandbox Code Playgroud)

我在此服务器上有两个具有相同配置的其他站点,并且它们完全加载.

还有其他人遇到过这个问题吗?这里有几个线程与我的问题类似,我尝试了其中几个解决方案,但似乎没有任何效果.

预先感谢您的帮助!

fre*_*reb 22

当请求超过NGINX uwsgi_read_timeout设置时,会产生该错误.在NGINX超过此限制后,它会关闭套接字,然后uWSGI会尝试写入已关闭的套接字,从而产生您从uWSIG看到的错误.

确保您的NGINX超时至少与uWSGI超时一样高(HARAKIRI_TIMEOUT).


rai*_*san -1

unix:///home/mysite/public/myapp.sock; 语法不正确,使用如下:

unix:/home/mysite/public/myapp.sock;