nginx配置后端服務(wù)健康檢查 nginx健康檢查模塊
前言
主動地健康檢查,nignx定時主動地去ping后端的服務(wù)列表,當(dāng)發(fā)現(xiàn)某服務(wù)出現(xiàn)異常時,把該服務(wù)從健康列表中移除,當(dāng)發(fā)現(xiàn)某服務(wù)恢復(fù)時,又能夠?qū)⒃摲?wù)加回健康列表中。nginx自帶的upstream輪詢可以實現(xiàn)業(yè)務(wù)接口切換, nginx有一個開源的實現(xiàn)nginx_upstream_check_module模塊能更加平滑的進(jìn)行業(yè)務(wù)切換
nginx自帶健康檢查的缺陷:
Nginx只有當(dāng)有訪問時后,才發(fā)起對后端節(jié)點探測。如果本次請求中,節(jié)點正好出現(xiàn)故障,Nginx依然將請求轉(zhuǎn)交給故障的節(jié)點,然后再轉(zhuǎn)交給健康的節(jié)點處理。所以不會影響到這次請求的正常進(jìn)行。但是會影響效率,因為多了一次轉(zhuǎn)發(fā)自帶模塊無法做到預(yù)警被動健康檢查使用第三訪模塊nginx_upstream_check_module:
區(qū)別于nginx自帶的非主動式的心跳檢測,淘寶開發(fā)的tengine自帶了一個提供主動式后端服務(wù)器心跳檢測模塊若健康檢查包類型為http,在開啟健康檢查功能后,nginx會根據(jù)設(shè)置的間隔向指定的后端服務(wù)器端口發(fā)送健康檢查包,并根據(jù)期望的HTTP回復(fù)狀態(tài)碼來判斷服務(wù)是否健康。后端真實節(jié)點不可用,則請求不會轉(zhuǎn)發(fā)到故障節(jié)點故障節(jié)點恢復(fù)后,請求正常轉(zhuǎn)發(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模塊
進(jìn)去下載nginx解壓目錄下運(yùn)行如下打包命令,如果沒有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的配置一般是單獨(dú)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
當(dāng)檢測不到index.html存在會自動切換到另外一臺服務(wù)器,適用于Jenkins發(fā)版,后面會在Jenkins里進(jìn)行補(bǔ)充
interval檢測間隔時間,單位為毫秒,rsie請求2次正常的話,標(biāo)記此realserver的狀態(tài)為up,fall表示請求5次都失敗的情況下,標(biāo)記此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次的時候就會判斷后端不可連而把連接都會轉(zhuǎn)移到另外一臺服務(wù)器,然后會根據(jù)上面設(shè)定的時間間隔向指定的后端服務(wù)器端口發(fā)送健康檢查包,并根據(jù)期望的HTTP回復(fù)狀態(tài)碼來判斷服務(wù)是否健康。這時候就可以對移除探針的服務(wù)器進(jìn)行項目部署,讓用戶無感訪問不受影響,部署完畢重新創(chuàng)建探針文件即可恢復(fù)
server number是后端服務(wù)器的數(shù)量
generation是Nginx reload的次數(shù)
Index是服務(wù)器的索引
Upstream是在配置中upstream的名稱
Name是服務(wù)器IP
Status是服務(wù)器的狀態(tài)
Rise是服務(wù)器連續(xù)檢查成功的次數(shù)
Fall是連續(xù)檢查失敗的次數(shù)
Check type是檢查的方式
Check port是后端專門為健康檢查設(shè)置的端口
相關(guān)知識
nginx之健康檢查
Nginx被動健康檢查和主動健康檢查
nginx中健康檢查(health
Nginx
Pod的健康檢查機(jī)制
負(fù)載均衡SLB四層(TCP/UDP)健康檢查出現(xiàn)異常的解決方法
[云原生] Kubernetes(k8s)健康檢查詳解與實戰(zhàn)演示(就緒性探針 和 存活性探針)
健康檢查配置
微服務(wù)平臺 TSF 健康檢查
docker容器的health健康狀態(tài)檢查【轉(zhuǎn)】
網(wǎng)址: nginx配置后端服務(wù)健康檢查 nginx健康檢查模塊 http://m.u1s5d6.cn/newsview1129126.html
推薦資訊
- 1發(fā)朋友圈對老公徹底失望的心情 12775
- 2BMI體重指數(shù)計算公式是什么 11235
- 3補(bǔ)腎吃什么 補(bǔ)腎最佳食物推薦 11199
- 4性生活姿勢有哪些 盤點夫妻性 10425
- 5BMI正常值范圍一般是多少? 10137
- 6在線基礎(chǔ)代謝率(BMR)計算 9652
- 7一邊做飯一邊躁狂怎么辦 9138
- 8從出汗看健康 出汗透露你的健 9063
- 9早上怎么喝水最健康? 8613
- 10五大原因危害女性健康 如何保 7826