Nginx

如何禁用 nginx 的超時?

  • November 28, 2019

在本地開發機器上,我有一個 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.conf文件:

vim /etc/nginx/nginx.conf

在 http{..} 部分添加以下內容

http {
    fastcgi_read_timeout 300;
    proxy_read_timeout 300;
}

並重新載入 nginx 的配置:

sudo service nginx reload

我使用了一個不太可能發生的相當大的值,即999999或使用time units,通過1d.

請注意,將值設置為0將立即導致網關超時錯誤。

引用自:https://serverfault.com/questions/777749