采用nginx和uwsgi的web应用,在页面ajax请求时,如果请求超过60s,则ajax会受到404的错误。解决方式如下。
情况一
如果nginx采用uwsgi_pass方式,则在nginx的server location中加上参数uwsgi_read_timeout
location / {
uwsgi_pass 127.0.0.1:8000;
include uwsgi_params;
uwsgi_read_timeout 90s;
}
情况二
nginx采用proxy_pass方式,则在nginx的server location中加上参数proxy_read_timeout
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 90s;
}
uwsgi的启动参数中加上参数http-timeout
uwsgi --wsgi-file $UWSGI_FILE --master -p $PROCESS --threads $THREADS --http :$PORT -b 8192 --http-timeout 90