




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、傳智播客 Java學(xué)院 傳智.入云龍1 nginx負(fù)載均衡高可用1.1 什么是負(fù)載均衡高可用nginx作為負(fù)載均衡器,所有請(qǐng)求都到了nginx,可見(jiàn)nginx處于非常重點(diǎn)的位置,如果nginx服務(wù)器宕機(jī)后端web服務(wù)將無(wú)法提供服務(wù),影響嚴(yán)重。為了屏蔽負(fù)載均衡服務(wù)器的宕機(jī),需要建立一個(gè)備份機(jī)。主服務(wù)器和備份機(jī)上都運(yùn)行高可用(High Availability)監(jiān)控程序,通過(guò)傳送諸如“I am alive”這樣的信息來(lái)監(jiān)控對(duì)方的運(yùn)行狀況。當(dāng)備份機(jī)不能在一定的時(shí)間內(nèi)收到這樣的信息時(shí),它就接管主服務(wù)器的服務(wù)IP并繼續(xù)提供負(fù)載均衡服務(wù);當(dāng)備份管理器又從主管理器收到“I am alive”這樣的信息時(shí),它
2、就釋放服務(wù)IP地址,這樣的主服務(wù)器就開(kāi)始再次提供負(fù)載均衡服務(wù)。1.2 keepalived+nginx實(shí)現(xiàn)主備1.2.1 什么是keepalivedkeepalived是集群管理中保證集群高可用的一個(gè)服務(wù)軟件,用來(lái)防止單點(diǎn)故障。 Keepalived的作用是檢測(cè)web服務(wù)器的狀態(tài),如果有一臺(tái)web服務(wù)器死機(jī),或工作出現(xiàn)故障,Keepalived將檢測(cè)到,并將有故障的web服務(wù)器從系統(tǒng)中剔除,當(dāng)web服務(wù)器工作正常后Keepalived自動(dòng)將web服務(wù)器加入到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的web服務(wù)器。1.2.2 keepalived工作原理keep
3、alived是以VRRP協(xié)議為實(shí)現(xiàn)基礎(chǔ)的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗余協(xié)議。虛擬路由冗余協(xié)議,可以認(rèn)為是實(shí)現(xiàn)路由器高可用的協(xié)議,即將N臺(tái)提供相同功能的路由器組成一個(gè)路由器組,這個(gè)組里面有一個(gè)master和多個(gè)backup,master上面有一個(gè)對(duì)外提供服務(wù)的vip(VIP = Virtual IP Address,虛擬IP地址,該路由器所在局域網(wǎng)內(nèi)其他機(jī)器的默認(rèn)路由為該vip),master會(huì)發(fā)組播,當(dāng)backup收不到VRRP包時(shí)就認(rèn)為master宕掉了,這時(shí)就需要根據(jù)VRRP的優(yōu)先級(jí)來(lái)選舉一個(gè)backup當(dāng)master。這
4、樣的話就可以保證路由器的高可用了。keepalived主要有三個(gè)模塊,分別是core、check和VRRP。core模塊為keepalived的核心,負(fù)責(zé)主進(jìn)程的啟動(dòng)、維護(hù)以及全局配置文件的加載和解析。check負(fù)責(zé)健康檢查,包括常見(jiàn)的各種檢查方式。VRRP模塊是來(lái)實(shí)現(xiàn)VRRP協(xié)議的。 詳細(xì)參考:Keepalived權(quán)威指南中文.pdf1.2.3 keepalived+nginx實(shí)現(xiàn)主備過(guò)程 初始狀態(tài)VIP虛ip:00nginx負(fù)載均衡服務(wù)器(主)keepalivednginx負(fù)載均衡服務(wù)器(備)kee
5、palived心跳tomat服務(wù)器群 主機(jī)宕機(jī)VIP虛ip:00nginx負(fù)載均衡服務(wù)器(主)keepalivednginx負(fù)載均衡服務(wù)器(備)keepalived心跳tomat服務(wù)器群 主機(jī)恢復(fù)VIP虛ip:00nginx負(fù)載均衡服務(wù)器(主)keepalivednginx負(fù)載均衡服務(wù)器(備)keepalived心跳tomat服務(wù)器群1.2.4 高可用環(huán)境兩臺(tái)nginx,一主一備:和19
6、兩臺(tái)tomcat服務(wù)器:、1.2.5 安裝keepalived分別在主備nginx上安裝keepalived,參考“安裝手冊(cè)”進(jìn)行安裝:1.2.6 配置keepalived 主nginx修改主nginx下/etc/keepalived/keepalived.conf文件! Configuration File for keepalived#全局配置global_defs notification_email #指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè) XXXXXX.com n
7、otification_email_from XXXXXX.com #指定發(fā)件人 #smtp_server XXX #指定smtp服務(wù)器地址 #smtp_connect_timeout 30 #指定smtp連接超時(shí)時(shí)間 router_id LVS_DEVEL #運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)vrrp_instance VI_1 state MASTER #標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡 virtual_router_id 51 #同一實(shí)例下virtual_router_id必須相同 priority 100 #MASTE
8、R權(quán)重要高于BACKUP 比如BACKUP為99 advert_int 1 #MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication #設(shè)置認(rèn)證 auth_type PASS #主從服務(wù)器驗(yàn)證方式 auth_pass 8888 virtual_ipaddress #設(shè)置vip 00 #可以多個(gè)虛擬IP,換行即可 備nginx修改備nginx下/etc/keepalived/keepalived.conf文件配置備nginx時(shí)需要注意:需要修改state為BACKUP , priority比MASTER低,vi
9、rtual_router_id和master的值一致! Configuration File for keepalived#全局配置global_defs notification_email #指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè) XXXXXX.com notification_email_from XXXXXX.com #指定發(fā)件人 #smtp_server XXX #指定smtp服務(wù)器地址 #smtp_connect_timeout 30 #指定smtp連接超時(shí)時(shí)間 router_id LVS_DEVEL #運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)vrr
10、p_instance VI_1 state BACKUP #標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡 virtual_router_id 51 #同一實(shí)例下virtual_router_id必須相同 priority 99 #MASTER權(quán)重要高于BACKUP 比如BACKUP為99 advert_int 1 #MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication #設(shè)置認(rèn)證 auth_type PASS #主從服務(wù)器驗(yàn)證方式 auth_pass 8888 virtual_ipaddress
11、#設(shè)置vip 00 #可以多個(gè)虛擬IP,換行即可 1.2.7 測(cè)試主備nginx都啟動(dòng)keepalived及nginx。service keepalived start./nginx 初始狀態(tài)查看主nginx的eth0設(shè)置:vip綁定在主nginx的eth0上。查看備nginx的eth0設(shè)置:vip沒(méi)有綁定在備nginx的eth0上。訪問(wèn),可以訪問(wèn)。 主機(jī)宕機(jī)將主nginx的keepalived停止或?qū)⒅鱪ginx關(guān)機(jī)(相當(dāng)于模擬宕機(jī)),查看主nginx的eth0:eth0沒(méi)有綁定vip注意這里模擬的是停止 keepalived進(jìn)程沒(méi)有模
12、擬宕機(jī),所以還要將nginx進(jìn)程也停止表示主nginx服務(wù)無(wú)法提供。查看備nginx的eth0:vip已經(jīng)漂移到備nginx。訪問(wèn),可以訪問(wèn)。 主機(jī)恢復(fù)將主nginx的keepalived和nginx都啟動(dòng)。查看主nginx的eth0:查看備nginx的eth0:vip漂移到主nginx。查看備nginx的eth0:eth0沒(méi)有綁定vip訪問(wèn):,正常訪問(wèn)。注意:主nginx恢復(fù)時(shí)一定要將nginx也啟動(dòng)(通常nginx啟動(dòng)要加在開(kāi)機(jī)啟動(dòng)中),否則即使vip漂移到主nginx也無(wú)法訪問(wèn)。1.2.8 解決nginx進(jìn)程和keepalived不同時(shí)存在問(wèn)題 問(wèn)題描述kee
13、palived是通過(guò)檢測(cè)keepalived進(jìn)程是否存在判斷服務(wù)器是否宕機(jī),如果keepalived進(jìn)程在但是nginx進(jìn)程不在了那么keepalived是不會(huì)做主備切換,所以我們需要寫(xiě)個(gè)腳本來(lái)監(jiān)控nginx進(jìn)程是否存在,如果nginx不存在就將keepalived進(jìn)程殺掉。 nginx進(jìn)程檢測(cè)腳本在主nginx上需要編寫(xiě)nginx進(jìn)程檢測(cè)腳本(check_nginx.sh),判斷nginx進(jìn)程是否存在,如果nginx不存在就將keepalived進(jìn)程殺掉,check_nginx.sh內(nèi)容如下:#!/bin/bash# 如果進(jìn)程中沒(méi)有nginx則將keepalived進(jìn)程kill
14、掉A=ps -C nginx -no-header |wc -l # 查看是否有 nginx進(jìn)程 把值賦給變量A if $A -eq 0 ;then # 如果沒(méi)有進(jìn)程值得為 零 service keepalived stop # 則結(jié)束 keepalived 進(jìn)程fi將check_nginx.sh拷貝至/etc/keepalived下,腳本測(cè)試:將nginx停止,將keepalived啟動(dòng),執(zhí)行腳本:sh /etc/keepalived/check_nginx.sh從執(zhí)行可以看出自動(dòng)將keepalived進(jìn)程kill掉了。 修改keepalived.conf修改主nginx的ke
15、epalived.conf,添加腳本定義檢測(cè):注意下邊紅色標(biāo)識(shí)地方:#全局配置global_defs notification_email #指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè) XXXXXX.com notification_email_from miaoruntu #指定發(fā)件人 #smtp_server XXX #指定smtp服務(wù)器地址 #smtp_connect_timeout 30 #指定smtp連接超時(shí)時(shí)間 router_id LVS_DEVEL #運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)vrrp_script check_nginx script
16、"/etc/keepalived/check_nginx.sh" #監(jiān)控腳本 interval 2 #時(shí)間間隔,2秒 weight 2 #權(quán)重vrrp_instance VI_1 state MASTER #標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡 virtual_router_id 51 #同一實(shí)例下virtual_router_id必須相同 priority 100 #MASTER權(quán)重要高于BACKUP 比如BACKUP為99 advert_int 1 #MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication #設(shè)置認(rèn)證 auth_type PASS #主從服務(wù)器驗(yàn)證方式 auth_pa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 場(chǎng)平土石方施工方案
- TSIA 044-2024 軟件企業(yè)高質(zhì)量發(fā)展評(píng)估標(biāo)準(zhǔn)
- 經(jīng)濟(jì)責(zé)任審計(jì)報(bào)告
- 2025年度高校畢業(yè)生就業(yè)實(shí)習(xí)保障協(xié)議書(shū)
- 2025年度馬術(shù)俱樂(lè)部項(xiàng)目合作協(xié)議書(shū)-馬術(shù)俱樂(lè)部青少年馬術(shù)俱樂(lè)部合作約定
- 二零二五年度政府辦公樓無(wú)償租用合同書(shū)
- 大連市2025年度租賃房屋押金管理合同
- 二零二五年度智慧城市建設(shè)項(xiàng)目多人合伙股東協(xié)議書(shū)
- 二零二五年度木材銷售代理服務(wù)合同樣本
- 2025年度湖南省勞動(dòng)合同電子檔案管理規(guī)范
- 勞務(wù)派遣投標(biāo)方案(交通協(xié)管員外包項(xiàng)目)(技術(shù)方案)
- 金庸人物課件
- 2024年普通高等學(xué)校招生全國(guó)統(tǒng)一考試·新課標(biāo)卷(化學(xué))附試卷分析
- 人教版五年級(jí)下冊(cè)數(shù)學(xué)第2單元測(cè)試題帶答案
- 再生資源門(mén)店加盟協(xié)議書(shū)
- DB62-T 3268-2024 人民防空工程平戰(zhàn)功能轉(zhuǎn)換技術(shù)標(biāo)準(zhǔn)
- 天車工技能競(jìng)賽理論考試題庫(kù)500題(含答案)
- 療愈珠寶的科學(xué)與藝術(shù)
- 新能源汽車車位租賃合同
- 《人工智能導(dǎo)論》(第2版)高職全套教學(xué)課件
- 39 《出師表》對(duì)比閱讀-2024-2025中考語(yǔ)文文言文閱讀專項(xiàng)訓(xùn)練(含答案)
評(píng)論
0/150
提交評(píng)論