Nginx報:Nginx?-?504?Gateway?Time-out問題解決辦法
問題背景
線上有個系統(tǒng),最前端是設置了nginx作為代理,有個1個請求的接口需要耗時1.1分鐘左右,老是出現(xiàn)Nginx - 504 Gateway Time-out的錯誤。
問題分析
繞過nginx直接訪問應用tomcat直接的端口進行相同條件測試,發(fā)現(xiàn)沒有問題,排除接口和系統(tǒng)的問題,那么問題就是nginx超時參數(shù)配置的問題,很多參數(shù)沒有指定的情況默認都是60S,所以應該是這個原因。
解決方法
在nginx加入下面配置,可以解決Nginx - 504 Gateway Time-out問題
默認60秒超時
http {
#配置在該區(qū)域會影響所有的server塊 以下解決nginx 504問題
proxy_connect_timeout 600; #單位秒 默認60
proxy_send_timeout 600; #單位秒 默認60
proxy_read_timeout 600; #單位秒 默認60
}
location / {
# 以下解決nginx 504問題
proxy_send_timeout 600; #單位秒 默認60
proxy_read_timeout 600; #單位秒 默認60
proxy_connect_timeout 600; #單位秒 默認60
}
拓展知識
- proxy_connect_timeouttime:與后端/上游服務器建立連接的超時時間,默認為60s,此時間不超過75s。
- proxy_read_timeout time:設置從后端/上游服務器讀取響應的超時時間,默認為60s,此超時時間指的是兩次成功讀操作間隔時間,而不是讀取整個響應體的超時時間,如果在此超時時間內上游服務器沒有發(fā)送任何響應,則Nginx關閉此連接。
- proxy_send_timeout time:設置往后端/上游服務器發(fā)送請求的超時時間,默認為60s,此超時時間指的是兩次成功寫操作間隔時間,而不是發(fā)送整個請求的超時時間,如果在此超時時間內上游服務器沒有接收任何響應,則Nginx關閉此連接。
- client_header_timeout:默認60s。指定等待client發(fā)送一個請求頭的超時時間(例如:GET / HTTP/1.1).僅當在一次read中,沒有收到請求頭,才會算成超時。如果在超時時間內,client沒發(fā)送任何東西,nginx返回HTTP狀態(tài)碼408(“Request timed out”)
- client_body_timeout:默認60s。
其他問題:
如果你遇到異常
IllegalStateException – if the getOutputStream method has already been called for this response object
那就說明你的程序中有地方調用過了,response.getOutputStream();
只需要與已有程序保持一致使用outputStream即可。
即將response.getWriter() 提換成 response.getOutputStream();
原因簡單來講就是這兩個方法互斥。調用了一個就不能調用另一個。
總結
到此這篇關于Nginx報:Nginx - 504 Gateway Time-out問題解決辦法的文章就介紹到這了,更多相關Nginx - 504 Gateway Time-out內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Ubuntu上安裝Nginx服務器程序及簡單的環(huán)境配置小結
Nginx是一款高性能的異步非阻塞服務器應用程序,人氣相當高,這里我們就來看一下在Ubuntu上安裝Nginx服務器程序及簡單的環(huán)境配置小結:2016-07-07
為高負載網(wǎng)絡優(yōu)化Nginx和Node.js的方法
如果不先對Nginx和Node.js的底層傳輸機制有所了解,并進行針對性優(yōu)化,可能對兩者再細致的調優(yōu)也會徒勞無功。一般情況下,Nginx通過TCP socket來連接客戶端與上游應用2013-02-02
NGINX報錯413 Request Entity Too Large的問題解決
Nginx 413錯誤表示請求實體太大,本文主要介紹了NGINX報錯413 Request Entity Too Large的問題解決,具有一定的參考價值,感興趣的可以了解一下2024-08-08
Nginx三種不同類型的虛擬主機的配置(基于域名、IP 和端口)
本文主要介紹了Nginx多種虛擬主機配置方式,能夠根據(jù)域名、IP 或端口區(qū)分不同的站點,本文就來介紹一下,感興趣的可以了解一下2025-04-04
Nginx代理Vue項目出現(xiàn)Invalid Host header問題及解決
在使用Nginx的upstream對Vue項目進行負載均衡時,如果代理地址無法訪問目標地址且頁面報錯InvalidHostheader(無效主機頭),可能是由于Vue項目的主機檢查配置導致的,解決方法是在Vue項目的webpack.dev.js文件中的devServer下添加disableHostCheck:true,跳過主機檢查2024-12-12
nginx中使用nginx-http-concat模塊合并靜態(tài)資源文件
這篇文章主要介紹了nginx中使用nginx-http-concat模塊合并靜態(tài)資源文件,用以加速網(wǎng)站的CSS、JS等靜態(tài)資源載入速度,需要的朋友可以參考下2014-06-06
nginx出現(xiàn)500 Internal Server Error錯誤的解決方法
這篇文章主要介紹了nginx出現(xiàn)500 Internal Server Error錯誤的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或工作有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-09-09

