Nginx被動健康檢查和主動健康檢查

2022-05-16 17:15:05 字數 1802 閱讀 4770

1.被動健康檢查

nginx自帶有健康檢查模組:ngx_http_upstream_module,可以做到基本的健康檢查,配置如下:

upstream cluster

server

}

nginx只有當有訪問時後,才發起對後端節點探測。如果本次請求中,節點正好出現故障,nginx依然將請求轉交給故障的節點,然後再轉交給健康的節點處理。所以不會影響到這次請求的正常進行。但是會影響效率,因為多了一次**,而且自帶模組無法做到預警。

2.主動健康檢查(需使用第三方模組)

主動地健康檢查,nignx定時主動地去ping後端的服務列表,當發現某服務出現異常時,把該服務從健康列表中移除,當發現某服務恢復時,又能夠將該服務加回健康列表中。**有乙個開源的實現nginx_upstream_check_module模組

官網:

http 

upstream cluster2

server

location /2

location /status

}}

3.整合第三方模組部署

#進入nginx安裝目錄

#解壓

unzip

master

cd nginx-1.12

# 進入nginx的原始碼目錄

# -p0,是「當前路徑」 -p1,是「上一級路徑」

patch -p1 < ../nginx_upstream_check_module-master/check_1.11.5+.patch

#nginx -v 可以檢視原有配置 輸出 ./configure --prefix=/usr/local/nginx

#增加upstream_check模組

./configure --prefix=/usr/local/nginx --add-module=../nginx_upstream_check_module-master

make

/usr/local/nginx/sbin/nginx -t # 檢查下是否有問題

注意 check版本和nginx版本要求有限制

1.12以上版本的nginx,補丁為check_1.11.5+.patch 具體參考github https://

3.2.修改配置檔案,讓nginx_upstream_check_module模組生效

3.3過載nginx

訪問http://nginx/nstatus

人為把其中的乙個節點關掉重新整理http://nginx/nstatus

udp反向**時健康檢查的問題,另一位大神在上面nginx_upstream_check_module的基礎上作了修改,實現了在第4層的**tcp和udp時的健康檢查。

Nginx 健康檢查

nginx 的健康檢查這塊筆者在網上看了很多文章,基本都是零零散散的,講各種實現方式,沒有一篇能完整的講當下的 nginx 實現健康檢查的幾種方式,應該選哪一種來使用,於是筆者想總結一篇。一 目前 nginx 支援兩種主流的健康檢查模式 主動檢查模式 nginx 服務端會按照設定的間隔時間主動向後端...

nginx健康檢查

通常我們會使用nginx的ngx http upstream module模組來配置伺服器組,示例如下 upstream springboot server 在30s內 fail timeout,預設值為10s 與服務端通訊失敗2次 max fails,預設值為1,設定為0則認為服務端一直可用 則認...

nginx 健康檢查

upstream backend 處理過程 1 nginx 在 請求過程中會自動的監測每個後端伺服器對請求的響應狀態,如果某個後端伺服器對請求的響應狀態在短時間內累計一定失敗次數時,nginx 將會標記該伺服器異 常。就不會 流量給該伺服器。不過每間隔一段時間 nginx 還是會 少量的一些請求給該...