在本地开发机器上,我有一个 nginx 反向代理,如下所示:
server {
listen 80;
server_name myvirtualhost1.local;
location / {
proxy_pass http://127.0.0.1:8080;
}
server {
listen 80;
server_name myvirtualhost2.local;
location / {
proxy_pass http://127.0.0.1:9090;
}
然而,如果我调试我的应用程序,响应可能会无限延迟,但 30 秒后我得到:
504 Gateway Time-out
作为回应。
如何禁用超时并让我的反向代理永远等待响应?而且我喜欢设置是全局的,这样我就不必为每个代理设置它。
可能根本无法禁用它,但可行的解决方法是增加执行时间。在nginx 教程网站上,它是这样写的:
并重新加载 nginx 的配置:
我使用了一个不太可能发生的相当大的值,即
999999
或使用time units,通过1d
.请注意,将值设置为
0
将立即导致网关超时错误。可以增加 nginx 的超时时间,以添加到@k0pernikus 的答案中,可以将以下内容添加到您的位置块中:
这里 1800 以秒为单位。
更改配置后,使用以下命令验证语法:
然后使用以下命令重新加载 nginx:
如果您使用 AWS 和负载均衡器,则应编辑空闲超时。我认为默认是 60 秒
我一直在与 nginx 502 超时错误作斗争,但无法解决问题。但是,恰好是 gunicorn 导致超时错误。所以你可能还需要检查你的 fastcgi 设置。
对于gunicorn,它是: