首頁 資訊 nginx配置后端服務健康檢查 nginx健康檢查模塊

nginx配置后端服務健康檢查 nginx健康檢查模塊

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

前言

     主動地健康檢查,nignx定時主動地去ping后端的服務列表,當發(fā)現某服務出現異常時,把該服務從健康列表中移除,當發(fā)現某服務恢復時,又能夠將該服務加回健康列表中。nginx自帶的upstream輪詢可以實現業(yè)務接口切換, nginx有一個開源的實現nginx_upstream_check_module模塊能更加平滑的進行業(yè)務切換

nginx自帶健康檢查的缺陷:

Nginx只有當有訪問時后,才發(fā)起對后端節(jié)點探測。如果本次請求中,節(jié)點正好出現故障,Nginx依然將請求轉交給故障的節(jié)點,然后再轉交給健康的節(jié)點處理。所以不會影響到這次請求的正常進行。但是會影響效率,因為多了一次轉發(fā)自帶模塊無法做到預警被動健康檢查

使用第三訪模塊nginx_upstream_check_module:

區(qū)別于nginx自帶的非主動式的心跳檢測,淘寶開發(fā)的tengine自帶了一個提供主動式后端服務器心跳檢測模塊若健康檢查包類型為http,在開啟健康檢查功能后,nginx會根據設置的間隔向指定的后端服務器端口發(fā)送健康檢查包,并根據期望的HTTP回復狀態(tài)碼來判斷服務是否健康。后端真實節(jié)點不可用,則請求不會轉發(fā)到故障節(jié)點故障節(jié)點恢復后,請求正常轉發(fā)

本文介紹的nginx_upstream_check_module模塊針對nginx1.2+

一、模塊安裝

1、nginx官方下載地址,下載版本然后用tar -zxvf解壓nginx: download

http://nginx.org/en/download.html

 2、nginx_upstream_check_module模塊下載

unzip master

 3、加載nginx_upstream_check_module模塊

進去下載nginx解壓目錄下運行如下打包命令,如果沒有patch就yum inst all patch -y

注:不管是1.20.············都加載check_1.20.1+.patch,只看主版本號

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

 4、編譯安裝nginx,注意各自模塊的存放位置,

./configure --user=root --group=root --with-http_ssl_module --with-threads --with-file-aio --with-http_stub_status_module --add-module=/usr/local/src/nginx_upstream_check_module-master/

make && make install

二、nginx配置

我nginx的配置一般是單獨include conf.d/*.conf;

vim /usr/local/nginx/conf/nginx.conf新增

[root@song ] cd /usr/local/nginx/conf/
[root@song conf]# mkdir conf.d

1、配置upstream.conf

項目部署目錄/usr/local/tomcat1/webapps/ROOT/WEB-INF/下

探針文件放在/usr/local/tomcat1/webapps/ROOT/monitor/index.html

當檢測不到index.html存在會自動切換到另外一臺服務器,適用于Jenkins發(fā)版,后面會在Jenkins里進行補充 

interval檢測間隔時間,單位為毫秒,rsie請求2次正常的話,標記此realserver的狀態(tài)為up,fall表示請求5次都失敗的情況下,標記此realserver的狀態(tài)為down,timeout為超時時間,單位為毫秒。

2、 在server段里面可以加入查看realserver狀態(tài)的頁面

3、啟動nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

4、查看nginx upstream狀態(tài)

移除/usr/local/tomcat1/webapps/ROOT/monitor/index.html這個探針文件,在check status第5次的時候就會判斷后端不可連而把連接都會轉移到另外一臺服務器,然后會根據上面設定的時間間隔向指定的后端服務器端口發(fā)送健康檢查包,并根據期望的HTTP回復狀態(tài)碼來判斷服務是否健康。這時候就可以對移除探針的服務器進行項目部署,讓用戶無感訪問不受影響,部署完畢重新創(chuàng)建探針文件即可恢復

 server number是后端服務器的數量
generation是Nginx reload的次數
Index是服務器的索引
Upstream是在配置中upstream的名稱
Name是服務器IP
Status是服務器的狀態(tài)
Rise是服務器連續(xù)檢查成功的次數
Fall是連續(xù)檢查失敗的次數
Check type是檢查的方式
Check port是后端專門為健康檢查設置的端口

相關知識

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

網址: nginx配置后端服務健康檢查 nginx健康檢查模塊 http://m.u1s5d6.cn/newsview1129126.html

推薦資訊