首頁 資訊 Nginx健康檢查【轉】

Nginx健康檢查【轉】

來源:泰然健康網 時間:2025年04月16日 13:41

Nginx作為一款強大的反向代理服務和負載均衡服務,具有高并發(fā)、低消耗、配置簡單等特點,而健康檢查,則是為了保障nginx能夠準確的轉發(fā)到后端的可用服務。

Nginx健康檢查分為被動探測與主動探測兩種,顧名思義,被動探測指nginx被動的發(fā)起探測;而主動探測則是在固定時間(可配置)主動發(fā)起探測,更具靈活性。

一、Nginx被動健康檢查

通過自帶健康檢查模塊ngx_http_upstream_module實現; 當收到訪問時才對后端發(fā)起探測; 請求根據轉發(fā)規(guī)則首次可能落到不可用節(jié)點,如多個節(jié)點故障則可能出現轉發(fā)多臺后才將請求轉到正常的服務,在高并發(fā)的時候影響轉發(fā)效率。

被動健康檢查關鍵參數max_fails與fail_timeout,官方描述如下:

max_fails:在配置的fail_timeout期間,最大的連接錯誤數,默認配置為1,如配置為0則表示不啟用探測,不管后端服務是否異常仍然會轉發(fā),單位次數

fail_timeout:服務被認為不可用的的時間,單位為s

如下配置:在3s內中如果有1次連接失敗,則表示該節(jié)點不可用,將該節(jié)點下線3s后才會再次探測

upstream personal_1 { server ip:port max_fails=1 fail_timeout=3; server ip:port max_fails=1 fail_timeout=3;} server { listen 80 ; server_name _; location ~ / { proxy_pass http:// personal_1; } }

模擬每秒1次請求,可以發(fā)現192.168.125.133服務在17:42探測異常,此時同步轉發(fā)至IP1服務,同時17:43-17:46將IP2剔除下線,17:47開始重新探測。

二、Nginx主動健康檢查

通過nginx_upstream_check_module模塊實現,官方nginx暫未加載該模塊,需要自行編譯; 主動對后端服務發(fā)起探測,如后端服務不可用,則不轉發(fā); 后端服務恢復后,則主動添加進負載。

主動探測關鍵參數interval、rise、fall、timeout、type、check_http_send、check_http_expect_alive:

interval:健康檢查時間,單位ms

rise:檢查成功次數,達到該值則認為服務正常,加入負載

fall:檢查失敗次數,達到該值則認為服務異常,剔除下線

timeout:檢查超時時間,單位ms

type:檢查類型,支持tcp/http等多種協議類型

check_http_send:http探測發(fā)送的請求,支持自定義接口,默認:"GET / HTTP/1.0rnrn"

check_http_expect_alive:http探測狀態(tài)碼,除了該配置上的其他狀態(tài)碼均認為服務不可用

如下配置:每1s發(fā)起主動探測,如出現1次失敗,則認為該節(jié)點不可用,剔除下線,檢驗返回碼2xx/3xx則認為服務可用。

upstream personal { server IP1; server IP2; check interval=1000 rise=1 fall=1 timeout=1000 type=http default_down=false; check_http_send "GET / HTTP/1.0rnrn"; check_http_expect_alive http_2xx http_3xx; } server { listen 80 ; server_name _; location ~ / { proxy_pass http:// personal; } }

如下每秒探測1次,返回非2xx或3xx,服務異常,剔除下線,多次均未向該服務轉發(fā)。

轉自

Nginx健康檢查 - 知乎
https://zhuanlan.zhihu.com/p/652813977

相關知識

nginx配置后端服務健康檢查 nginx健康檢查模塊
nginx之健康檢查
Nginx被動健康檢查和主動健康檢查
nginx中健康檢查(health
Nginx
Pod的健康檢查機制
docker容器的health健康狀態(tài)檢查【轉】
負載均衡SLB四層(TCP/UDP)健康檢查出現異常的解決方法
[云原生] Kubernetes(k8s)健康檢查詳解與實戰(zhàn)演示(就緒性探針 和 存活性探針)
Docker健康檢查與狀態(tài)監(jiān)控怎么實現

網址: Nginx健康檢查【轉】 http://www.u1s5d6.cn/newsview1144093.html

推薦資訊