原文鏈接:https://blog.csdn.net/chinabestchina/article/details/96384179
因nginx配置導致http訪問504處理
文章目錄
因nginx配置導致http訪問504處理
一、問題描述
二、問題分析
三、問題解決
四、擴展
一、問題描述
最近排查項目問題,發現這樣的情況:
http請求服務,頁面很快(很快,並沒有過多等待)返回504(gateway timeout)失敗,檢查服務其實是正常的,只是處理時間偏長。
二、問題分析
其實錯誤很明顯,http超時了,但頁面等待時間很短就報504。再結合nginx轉發,基本可以確定問題的原因是ngnix的超時時間設置過短。
三、問題解決
解決方法就是修改調大nginx的超時時間。
修改nginx配置文件中的http模塊:vim /etc/nginx/nginx.conf
http{
#根據具體情況修改讀取超時時間,單位秒
proxy_read_timeout 90;
}
四、擴展
這裏對nginx超時時間進行簡要總結
http{
#讀取http頭部的超時時間,單位秒,連接建立後,服務端接收http頭部,規定時間內沒收到,則超時,返回給客服端408(request time out)
client_header_timeout 60;
#讀取http body的超時時間,單位秒,連接建立後,服務端接收body,規定時間內沒收到,則超時,返回給客服端408(request time out)
client_body_timeout 60;
#發送響應超時時間,單位秒,服務端向客戶端發送數據包,規定時間內客戶端沒收到,則超時
send_timeout 60;
#保持閒置連接的超時時間,單位秒,超過後服務器和瀏覽器都會關閉連接
keepalive_timeout 75;
#域名解析超時時間,單位秒
resolve_timeout 30;
#nginx服務器與被代理服務連接超時時間,代理超時
proxy_connect_timeout 60;
#nginx服務器發送數據給被代理服務器超時時間,單位秒,規定時間內nginx服務器沒發送數據,則超時
proxy_send_timeout 60;
#nginx服務器接收被代理服務器數據超時時間,單位秒,規定時間內nginx服務器沒收到數據,則超時
proxy_read_timeout 60;
}