Nginx使用nginx_upstream_check_module模塊實(shí)現(xiàn)后端節(jié)點(diǎn)健康檢查功能

nginx自帶的針對(duì)后端節(jié)點(diǎn)健康檢查的功能比較簡(jiǎn)單竞慢,通過(guò)默認(rèn)自帶的ngx_http_proxy_module 模塊和ngx_http_upstream_module模塊中的相關(guān)指令來(lái)完成當(dāng)后端節(jié)點(diǎn)出現(xiàn)故障時(shí)处铛,自動(dòng)切換到健康節(jié)點(diǎn)來(lái)提供訪問(wèn)。
舉例

upstream name 
{
  server 192.168.57.110:8080 max_fails=1  fail_timeout=10s;
  server 192.168.57.101:8080 max_fails=1  fail_timeout=10s;
}

參數(shù)說(shuō)明:
max_fails=number # 設(shè)定Nginx與服務(wù)器通信的嘗試失敗的次數(shù)。在fail_timeout參數(shù)定義的時(shí)間段內(nèi)河泳,如果失敗的次數(shù)達(dá)到此值阴挣,Nginx就認(rèn)為服務(wù)器不可用。在下一個(gè)fail_timeout時(shí)間段登钥,服務(wù)器不會(huì)再被嘗試畔师。 失敗的嘗試次數(shù)默認(rèn)是1。設(shè)為0就會(huì)停止統(tǒng)計(jì)嘗試次數(shù)牧牢,認(rèn)為服務(wù)器是一直可用的看锉。 你可以通過(guò)指令proxy_next_upstream姿锭、fastcgi_next_upstream和 memcached_next_upstream來(lái)配置什么是失敗的嘗試。 默認(rèn)配置時(shí)伯铣,http_404狀態(tài)不被認(rèn)為是失敗的嘗試呻此。

fail_timeout=time # 設(shè)定服務(wù)器被認(rèn)為不可用的時(shí)間段以及統(tǒng)計(jì)失敗嘗試次數(shù)的時(shí)間段。在這段時(shí)間中腔寡,服務(wù)器失敗次數(shù)達(dá)到指定的嘗試次數(shù)焚鲜,服務(wù)器就被認(rèn)為不可用。默認(rèn)情況下放前,該超時(shí)時(shí)間是10秒忿磅。

這種情況Nginx無(wú)法主動(dòng)識(shí)別后端節(jié)點(diǎn)狀態(tài),后端即使有不健康節(jié)點(diǎn)凭语, 負(fù)載均衡器依然會(huì)先把該請(qǐng)求轉(zhuǎn)發(fā)給該不健康節(jié)點(diǎn)葱她,然后再轉(zhuǎn)發(fā)給別的節(jié)點(diǎn),這樣就會(huì)浪費(fèi)一次轉(zhuǎn)發(fā)似扔,而且自帶模塊無(wú)法做到預(yù)警吨些。So 此時(shí)使用第三方模塊 nginx_upstream_check_module模塊

nginx_upstream_check_module模塊由淘寶團(tuán)隊(duì)開(kāi)發(fā) 淘寶自己的 tengine 上是自帶了該模塊的,大家可以訪問(wèn)淘寶tengine的官網(wǎng)來(lái)獲取該版本的nginx炒辉,官方地址:http://tengine.taobao.org/锤灿。我們使用的是原生Nginx,采用添加模塊的方式

部署流程

   1辆脸、下載nginx_upstream_check_module模塊
     #進(jìn)入nginx安裝目錄
     cd /usr/lcoal/nginx
     #下載nginx_upstream_check_module模塊
     wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
     #解壓
    unzip master
iage.png
2但校、為nginx打補(bǔ)丁
cd nginx-1.11.5  # 進(jìn)入nginx的源碼目錄
# -p0,是“當(dāng)前路徑”  -p1啡氢,是“上一級(jí)路徑”
patch -p0 < ../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  # 檢查下是否有問(wèn)題

注意 check版本和Nginx版本要求有限制 1.12以上版本的nginx状囱,補(bǔ)丁為check_1.11.5+.patch 具體參考github https://github.com/yaoweibin/nginx_upstream_check_module

image.png

3.修改配置文件,讓nginx_upstream_check_module模塊生效

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

參數(shù)解釋 
1.  #添加了nginx_upstream_check_module模塊之后倘是,該項(xiàng)生效  
2.  #用于檢測(cè)后方realserver的健康狀態(tài)亭枷,如果后端服務(wù)器不可用,則請(qǐng)求不轉(zhuǎn)發(fā)到這臺(tái)服務(wù)器搀崭。  
3.  #interval:每隔3s檢測(cè)一次  
4.  #rise:檢測(cè)次數(shù)叨粘,如果連續(xù)檢測(cè)2次都成功,那就證明該后端節(jié)點(diǎn)正常
5.  #fall:檢測(cè)次數(shù)瘤睹,如果連續(xù)檢測(cè)5次都失敗升敲,那就證明該后端節(jié)點(diǎn)不健康  
6.  #timeout:超時(shí)時(shí)間為1s  

image.png

啟動(dòng)或者重載nginx

輸入 /nstatus

image.png

從上圖可以看出 現(xiàn)在有兩個(gè)節(jié)點(diǎn) 我們?nèi)藶榘哑渲?7.85節(jié)點(diǎn)API關(guān)閉,此時(shí)狀態(tài)為down 節(jié)點(diǎn)正常時(shí)會(huì)恢復(fù)為正常狀態(tài)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末轰传,一起剝皮案震驚了整個(gè)濱河市驴党,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌获茬,老刑警劉巖港庄,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倔既,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鹏氧,警方通過(guò)查閱死者的電腦和手機(jī)渤涌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)把还,“玉大人实蓬,你說(shuō)我怎么就攤上這事”颗瘢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵瓣履,是天一觀的道長(zhǎng)率翅。 經(jīng)常有香客問(wèn)我,道長(zhǎng)袖迎,這世上最難降的妖魔是什么冕臭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮燕锥,結(jié)果婚禮上辜贵,老公的妹妹穿的比我還像新娘。我一直安慰自己归形,他們只是感情好托慨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著暇榴,像睡著了一般厚棵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蔼紧,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天婆硬,我揣著相機(jī)與錄音,去河邊找鬼奸例。 笑死彬犯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的查吊。 我是一名探鬼主播谐区,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼逻卖!你這毒婦竟也來(lái)了卢佣?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤箭阶,失蹤者是張志新(化名)和其女友劉穎虚茶,沒(méi)想到半個(gè)月后戈鲁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘹叫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年婆殿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罩扇。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡婆芦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喂饥,到底是詐尸還是另有隱情消约,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布员帮,位于F島的核電站或粮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏捞高。R本人自食惡果不足惜氯材,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硝岗。 院中可真熱鬧氢哮,春花似錦、人聲如沸型檀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胀溺。三九已至生闲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間月幌,已是汗流浹背碍讯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扯躺,地道東北人捉兴。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像录语,于是被迫代替她去往敵國(guó)和親倍啥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容