解决方案(很可能不是 nginx 的问题)
1.uwsgi_connect_timeout:
默认60秒,与uwsgi-server连接的超时时间,该值不能超过75秒.若在超时时间内未能成功连接则断开连接尝试
2.uwsgi_read_timeout = 3600
默认60秒,nginx等待uwsgi进程发送响应数据的超时时间。若有需要长时间运行才能产生输出结果的uwsgi进程则需将此参数调高。若在错误日志文件中看到
upstream timed out需将此参数调高。若超过超时时间还未收到响应则nginx关闭连接
3.uwsgi_send_timeout:
默认60秒,nginx向uwsgi进程发送请求的超时时间。超时时间由两次写操作的时间间隔算,而非整个请求。若超过超时时间仍没写入动作则nginx关闭连接
nginx 配置里面路由部分
location /xxxxx { include uwsgi_params; uwsgi_pass 127.0.0.1:XXXX; proxy_read_timeout 3600s; uwsgi_read_timeout 3600s; }
server {
listen 80;
server_name localhost;
client_max_body_size 10m;
client_header_timeout 5m;
client_body_timeout 5m;
proxy_connect_timeout 6000s;
proxy_read_timeout 5m;
proxy_send_timeout 5m;location / {
# ...
}
}
uwsgi.ini
uwsgi_read_timeout=3600 harakiri = 3000