因nginx配置導致http訪問504處理

原文鏈接: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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章