歡迎您光臨本站 註冊首頁

nginx負載均衡配置,宕機自動切換方式

←手機掃碼閱讀     zmcjlove @ 2020-06-04 , reply:0

嚴格來說,nginx自帶是沒有針對負載均衡後端節點的健康檢查的,但是可以通過默認自帶的ngx_http_proxy_module模塊和ngx_http_upstream_module模塊中的相關指令來完成當後端節點出現故障時,自動切換到健康節點來提供訪問。

下面列出這兩個模塊中相關的指令:

語法: proxy_connect_timeout time;

默認值: proxy_connect_timeout 60s;

設置與後端服務器建立連接的超時時間。應該注意這個超時一般不可能大於75秒。

語法: proxy_read_timeout time;

默認值: proxy_read_timeout 60s;

定義從後端服務器讀取響應的超時。此超時是指相鄰兩次讀操作之間的最長時間間隔,而不是整個響應傳輸完成的最長時間。如果後端服務器在超時時間段內沒有傳輸任何數據,連接將被關閉。

利用nginx_upstream_check_module模塊對後端節點做健康檢查

這個就是淘寶技術團隊開發的nginx模塊。大家可以訪問淘寶tengine的官網http://tengine.taobao.org來獲取該版本的nginx。

在nginx.conf配置文件裡面的upstream加入健康檢查,如下:

 upstream name { server 192.168.0.21:80; server 192.168.0.22:80; check interval=3000 rise=2 fall=5 timeout=1000 type=http; }


上面配置的意思是,對name這個負載均衡條目中的所有節點,每個3秒檢測一次,請求2次正常則標記

realserver狀態為up,如果檢測 5 次都失敗,則標記 realserver的狀態為down,超時時間為1秒。

這裡列出nginx_upstream_check_module模塊所支持的指令意思:

Syntax: check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|http|ssl_hello|mysql|ajp] [port=check_port]

Default: 如果沒有配置參數,默認值是:

interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp

Context: upstream

該指令可以打開後端服務器的健康檢查功能。

指令後面的參數意義是:

interval:向後端發送的健康檢查包的間隔。

fall(fall_count): 如果連續失敗次數達到fall_count,服務器就被認為是down。

rise(rise_count): 如果連續成功次數達到rise_count,服務器就被認為是up。

timeout: 後端健康請求的超時時間。

default_down: 設定初始時服務器的狀態,如果是true,就說明默認是down的,如果是false,就是up的。默認值是true,也就是一開始服務器認為是不可用,要等健康檢查包達到一定成功次數以後才會被認為是健康的。

type:健康檢查包的類型,現在支持以下多種類型

tcp:簡單的tcp連接,如果連接成功,就說明後端正常。

ssl_hello:發送一個初始的SSL hello包並接受服務器的SSL hello包。

http:發送HTTP請求,通過後端的回覆包的狀態來判斷後端是否存活。

mysql: 向mysql服務器連接,通過接收服務器的greeting包來判斷後端是否存活。

ajp:向後端發送AJP協議的Cping包,通過接收Cpong包來判斷後端是否存活。

port: 指定後端服務器的檢查端口。

你可以指定不同於真實服務的後端服務器的端口,比如後端提供的是443端口的應用,你可以去檢查80端口的狀態來判斷後端健康狀況。

默認是0,表示跟後端server提供真實服務的端口一樣。

該選項出現於Tengine-1.4.0。

補充知識:   nginx超時自動重發  

1、現象:

使用nginx做負載後,如果url響應超過一定時間(一般是10分鐘)後,請求會自動重發到另一臺機器;

2、原因:

在nignxi中,超時自動重發,默認是開啟的,需要關閉配置。

3、解決方案:

nginx中增加配置:

proxy_next_upstream off;



[zmcjlove ] nginx負載均衡配置,宕機自動切換方式已經有134次圍觀

http://coctec.com/docs/nginx/show-post-236908.html