我正在使用Python,Flask,uWSGI和NGINX托管Web服务器。其中一项功能涉及为用户生成文件,该文件最多可能需要一到两分钟。在此操作中,我不断收到NGINX的504超时。我试图在/etc/nginx/nginx.conf
中更改一些配置变量,例如keepalive_timeout
,但这没有用。我还尝试在/etc/nginx/conf.d/timeout.conf
中添加以下内容:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
然后我重新加载了systemctl reload nginx
,但是它没有任何改变。
如何增加请求超时之前的时间? 感谢您的帮助
答案 0 :(得分:3)
在“ http”部分的末尾添加以下指令,以将超时限制增加到180秒(3分钟):
http {
<...>
include /etc/nginx/conf.d/.conf;
proxy_send_timeout 180s;
proxy_read_timeout 180s;
fastcgi_send_timeout 180s;
fastcgi_read_timeout 180s;
}
答案 1 :(得分:0)
我遇到了同样的问题..我发现了一种解决方法,告诉nginx接受默认数据量以外的一定数量的数据。并不是要自己管理超时,而是要更改事务中接受的数据量就可以了。
server {
client_max_body_size 5M; # or more ^^
}
但是它实际上不是安全选项。它可以工作,但是请小心。
此外,如果您使用的是反向代理WSGI网关(例如Php)..底层机制可能会优先于此
答案 2 :(得分:-1)
server {
server_name yourhost;
client_max_body_size 5M;
location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080; # depending on your network conf
}
}