佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式

nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式

熱門(mén)標(biāo)簽:美圖手機(jī) 網(wǎng)站建設(shè) 使用U盤(pán)裝系統(tǒng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 硅谷的囚徒呼叫中心 智能手機(jī) 阿里云 檢查注冊(cè)表項(xiàng)

嚴(yán)格來(lái)說(shuō),nginx自帶是沒(méi)有針對(duì)負(fù)載均衡后端節(jié)點(diǎ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)。

下面列出這兩個(gè)模塊中相關(guān)的指令:

語(yǔ)法: proxy_connect_timeout time;

默認(rèn)值: proxy_connect_timeout 60s;

設(shè)置與后端服務(wù)器建立連接的超時(shí)時(shí)間。應(yīng)該注意這個(gè)超時(shí)一般不可能大于75秒。

語(yǔ)法: proxy_read_timeout time;

默認(rèn)值: proxy_read_timeout 60s;

定義從后端服務(wù)器讀取響應(yīng)的超時(shí)。此超時(shí)是指相鄰兩次讀操作之間的最長(zhǎng)時(shí)間間隔,而不是整個(gè)響應(yīng)傳輸完成的最長(zhǎng)時(shí)間。如果后端服務(wù)器在超時(shí)時(shí)間段內(nèi)沒(méi)有傳輸任何數(shù)據(jù),連接將被關(guān)閉。

利用nginx_upstream_check_module模塊對(duì)后端節(jié)點(diǎn)做健康檢查

這個(gè)就是淘寶技術(shù)團(tuán)隊(duì)開(kāi)發(fā)的nginx模塊。大家可以訪問(wèn)淘寶tengine的官網(wǎng)http://tengine.taobao.org來(lái)獲取該版本的nginx。

在nginx.conf配置文件里面的upstream加入健康檢查,如下:

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

上面配置的意思是,對(duì)name這個(gè)負(fù)載均衡條目中的所有節(jié)點(diǎn),每個(gè)3秒檢測(cè)一次,請(qǐng)求2次正常則標(biāo)記

realserver狀態(tài)為up,如果檢測(cè) 5 次都失敗,則標(biāo)記 realserver的狀態(tài)為down,超時(shí)時(shí)間為1秒。

這里列出nginx_upstream_check_module模塊所支持的指令意思:

Syntax: check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|http|ssl_hello|mysql|ajp] [port=check_port]

Default: 如果沒(méi)有配置參數(shù),默認(rèn)值是:

interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp

Context: upstream

該指令可以打開(kāi)后端服務(wù)器的健康檢查功能。

指令后面的參數(shù)意義是:

interval:向后端發(fā)送的健康檢查包的間隔。

fall(fall_count): 如果連續(xù)失敗次數(shù)達(dá)到fall_count,服務(wù)器就被認(rèn)為是down。

rise(rise_count): 如果連續(xù)成功次數(shù)達(dá)到rise_count,服務(wù)器就被認(rèn)為是up。

timeout: 后端健康請(qǐng)求的超時(shí)時(shí)間。

default_down: 設(shè)定初始時(shí)服務(wù)器的狀態(tài),如果是true,就說(shuō)明默認(rèn)是down的,如果是false,就是up的。默認(rèn)值是true,也就是一開(kāi)始服務(wù)器認(rèn)為是不可用,要等健康檢查包達(dá)到一定成功次數(shù)以后才會(huì)被認(rèn)為是健康的。

type:健康檢查包的類型,現(xiàn)在支持以下多種類型

tcp:簡(jiǎn)單的tcp連接,如果連接成功,就說(shuō)明后端正常。

ssl_hello:發(fā)送一個(gè)初始的SSL hello包并接受服務(wù)器的SSL hello包。

http:發(fā)送HTTP請(qǐng)求,通過(guò)后端的回復(fù)包的狀態(tài)來(lái)判斷后端是否存活。

mysql: 向mysql服務(wù)器連接,通過(guò)接收服務(wù)器的greeting包來(lái)判斷后端是否存活。

ajp:向后端發(fā)送AJP協(xié)議的Cping包,通過(guò)接收Cpong包來(lái)判斷后端是否存活。

port: 指定后端服務(wù)器的檢查端口。

你可以指定不同于真實(shí)服務(wù)的后端服務(wù)器的端口,比如后端提供的是443端口的應(yīng)用,你可以去檢查80端口的狀態(tài)來(lái)判斷后端健康狀況。

默認(rèn)是0,表示跟后端server提供真實(shí)服務(wù)的端口一樣。

該選項(xiàng)出現(xiàn)于Tengine-1.4.0。

補(bǔ)充知識(shí):nginx超時(shí)自動(dòng)重發(fā)

1、現(xiàn)象:

使用nginx做負(fù)載后,如果url響應(yīng)超過(guò)一定時(shí)間(一般是10分鐘)后,請(qǐng)求會(huì)自動(dòng)重發(fā)到另一臺(tái)機(jī)器;

2、原因:

在nignxi中,超時(shí)自動(dòng)重發(fā),默認(rèn)是開(kāi)啟的,需要關(guān)閉配置。

3、解決方案:

nginx中增加配置:

proxy_next_upstream off;

以上這篇nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

標(biāo)簽:賀州 懷化 山南 煙臺(tái) 通遼 湘潭 湖北 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    海宁市| 繁昌县| 林芝县| 聂拉木县| 陆丰市| 进贤县| 连城县| 个旧市| 洛南县| 当涂县| 革吉县| 盐山县| 汤阴县| 宾阳县| 遵义县| 鹿泉市| 互助| 巩义市| 修水县| 乌海市| 贺兰县| 信宜市| 泸州市| 东莞市| 黑山县| 区。| 东阿县| 固安县| 娱乐| 兴隆县| 泰和县| 阿拉善右旗| 丰都县| 宁化县| 额尔古纳市| 海城市| 西安市| 琼结县| 正蓝旗| 武定县| 蓬安县|