nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式
嚴(yán)格來說,nginx自帶是沒有針對(duì)負(fù)載均衡后端節(jié)點(diǎn)的健康檢查的,但是可以通過默認(rèn)自帶的ngx_http_proxy_module模塊和ngx_http_upstream_module模塊中的相關(guān)指令來完成當(dāng)后端節(jié)點(diǎn)出現(xiàn)故障時(shí),自動(dòng)切換到健康節(jié)點(diǎ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)沒有傳輸任何數(shù)據(jù),連接將被關(guān)閉。
利用nginx_upstream_check_module模塊對(duì)后端節(jié)點(diǎn)做健康檢查
這個(gè)就是淘寶技術(shù)團(tuán)隊(duì)開發(fā)的nginx模塊。大家可以訪問淘寶tengine的官網(wǎng)http://tengine.taobao.org來獲取該版本的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: 如果沒有配置參數(shù),默認(rèn)值是:
interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp
Context: upstream
該指令可以打開后端服務(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,就說明默認(rèn)是down的,如果是false,就是up的。默認(rèn)值是true,也就是一開始服務(wù)器認(rèn)為是不可用,要等健康檢查包達(dá)到一定成功次數(shù)以后才會(huì)被認(rèn)為是健康的。
type:健康檢查包的類型,現(xiàn)在支持以下多種類型
tcp:簡(jiǎn)單的tcp連接,如果連接成功,就說明后端正常。
ssl_hello:發(fā)送一個(gè)初始的SSL hello包并接受服務(wù)器的SSL hello包。
http:發(fā)送HTTP請(qǐng)求,通過后端的回復(fù)包的狀態(tài)來判斷后端是否存活。
mysql: 向mysql服務(wù)器連接,通過接收服務(wù)器的greeting包來判斷后端是否存活。
ajp:向后端發(fā)送AJP協(xié)議的Cping包,通過接收Cpong包來判斷后端是否存活。
port: 指定后端服務(wù)器的檢查端口。
你可以指定不同于真實(shí)服務(wù)的后端服務(wù)器的端口,比如后端提供的是443端口的應(yīng)用,你可以去檢查80端口的狀態(tà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)超過一定時(shí)間(一般是10分鐘)后,請(qǐng)求會(huì)自動(dòng)重發(fā)到另一臺(tái)機(jī)器;
2、原因:
在nignxi中,超時(shí)自動(dòng)重發(fā),默認(rèn)是開啟的,需要關(guān)閉配置。
3、解決方案:
nginx中增加配置:
proxy_next_upstream off;
以上這篇nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- nginx 作為反向代理實(shí)現(xiàn)負(fù)載均衡的例子
- Nginx負(fù)載均衡的4種方案配置實(shí)例
- 使用nginx+lua進(jìn)行token鑒權(quán)的方法
- Nginx+Windows負(fù)載均衡配置方法
- 詳解Nginx服務(wù)器之負(fù)載均衡策略(6種)
- windows使用nginx實(shí)現(xiàn)網(wǎng)站負(fù)載均衡測(cè)試實(shí)例
- nginx 負(fù)載均衡 多站點(diǎn)共享Session
- Nginx負(fù)載均衡配置簡(jiǎn)單配置方法
- nginx?負(fù)載均衡輪詢方式配置詳解
- Nginx搭載負(fù)載均衡及前端項(xiàng)目部署
相關(guān)文章
Nginx中配置過濾爬蟲的User-Agent的簡(jiǎn)單方法
這篇文章主要介紹了Nginx中配置過濾爬蟲的User-Agent的簡(jiǎn)單方法,文中羅列了一些常用搜索引擎的爬蟲名稱以免造成不必要的過濾,需要的朋友可以參考下2016-01-01
nginx和Apache配置SSL證書的實(shí)現(xiàn)步驟
SSL證書是一種數(shù)字證書,用于加密在網(wǎng)絡(luò)上發(fā)送的數(shù)據(jù)并保護(hù)敏感信息的安全性,本文主要介紹了nginx和Apache配置SSL證書的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
Nginx日志中request_time和upstream_response_time區(qū)別
Nginx日志中的request_time和upstream_response_time是關(guān)鍵的性能指標(biāo),本文就來介紹一下Nginx日志中request_time和upstream_response_time區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2024-11-11
詳解Nginx反向代理WebSocket響應(yīng)403的解決辦法
本篇文章主要介紹了詳解Nginx反向代理WebSocket響應(yīng)403的解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01
詳解Nginx虛擬主機(jī)配置中server_name的具體寫法
這篇文章主要介紹了Nginx虛擬主機(jī)配置中server_name的具體寫法,server_name服務(wù)器名是虛擬主機(jī)中必須配置的重要參數(shù),需要的朋友可以參考下2016-03-03
nginx proxy_redirect https配置后端http302跳轉(zhuǎn)處理方式
這篇文章主要介紹了nginx proxy_redirect https配置后端http302跳轉(zhuǎn)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
詳解Prometheus 抓取 nginx 訪問日志的指標(biāo)
通過結(jié)合NGINX Exporter, Fluentd, Prometheus和Grafana, 可有效監(jiān)控并可視化NGINX中的4xx和5xx狀態(tài)碼日志,首先使用Fluentd收集和解析NGINX日志,再通過Prometheus抓取Fluentd暴露的指標(biāo),本文介紹Prometheus抓取nginx訪問日志的指標(biāo),感興趣的朋友一起看看吧2024-10-10

