您好,登錄后才能下訂單哦!
本篇內容主要講解“Nginx后端健康檢查的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Nginx后端健康檢查的方法是什么”吧!
嚴格說Nginx并沒有自帶針對負載均衡后端節點的健康檢查功能,但是可以通過默認自帶的ngx_http_proxy_module 模塊和ngx_http_upstream_module模塊中的相關指令來完成當后端節點出現故障時,自動切換到健康節點。
0x01:ngx_http_proxy_module模塊
proxy_connect_timeout 指令
語 法: proxy_connect_timeout time;
默認值: proxy_connect_timeout 60s;
上下文: http, server, location
該指令的功能是設置與后端服務器建立連接的超時時間。應該注意超時一般不可能大于75秒。
proxy_read_timeout指令
語 法: proxy_read_timeout time;
默認值: proxy_read_timeout 60s;
上下文: http, server, location
定義從后端服務器讀取響應的超時時間。該超時是指相鄰兩次讀操作之間的最長時間間隔,而不是整個響應傳輸完成的最長時間。如果后端服務器在超時時間段內沒有傳輸任何數據,則連接將被關閉。
proxy_next_upstream指令
語 法: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 |http_404 | off ...;
默認值: proxy_next_upstream error timeout;
上下文: http, server, location
指定在何種情況下一個失敗的請求應該被發送到下一臺后端服務器節點。
error:Nginx與后端服務器建立連接時;或者向后端服務器發送請求時;或者從后端服務器接收響應頭時,出現錯誤
timeout:和后端服務器建立連接時;或者向后端服務器發送請求時;或者從后端服務器接收響應頭時,出現超時
invalid_header:后端服務器返回空響應或者非法響應頭
http_500:后端服務器返回的響應狀態碼為500
http_502:后端服務器返回的響應狀態碼為502
http_503:后端服務器返回的響應狀態碼為503
http_504:后端服務器返回的響應狀態碼為504
http_404 :后端服務器返回的響應狀態碼為404
off :停止將請求發送給下一臺后端服務器
需要理解一點的是,只有在沒有向客戶端發送任何數據之前,將請求轉給下一臺后端服務器才是可行的。也就是說,如果在傳輸響應到客戶端時出現錯誤或者超時,這類錯誤是不可能恢復的。
例子:
http {
proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
}
0x02:ngx_http_upstream_module模塊
server指令
語 法: server address [parameters];
默認值: —
上下文: upstream
max_fails=number:設定Nginx與服務器通信的嘗試失敗的次數。在fail_timeout參數定義的時間段內,如果失敗的次數達到此值,Nginx就認為服務器不可用。在下一個fail_timeout時間段,服務器不會再被嘗試。失敗的嘗試次數默認是1。設為0就會停止統計嘗試次數,認為服務器是一直可用的。可以通過指令proxy_next_upstream、fastcgi_next_upstream和 memcached_next_upstream來配置什么是失敗的嘗試。默認配置時,http_404狀態不被認為是失敗的嘗試。
fail_timeout=time:設定服務器被認為不可用的時間段以及統計失敗嘗試次數的時間段。在這段時間中,服務器失敗次數達到指定的嘗試次數,服務器就被認為不可用。默認情況下,該超時時間是10秒。
例子:
upstream name {
server 192.168.1.110:8081 max_fails=3 fail_timeout=60s;
server 192.168.1.122:8082 max_fails=3 fail_timeout=60s;
}
采用這個方式需要注意的一點是,如果后端有不健康節點,負載均衡器依然會先把該請求轉發給該不健康節點,然后再轉發給別的節點,這樣就會浪費一次轉發。
到此,相信大家對“Nginx后端健康檢查的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。