這篇文章主要講解了“如何用nginx + keepAlive 實現(xiàn)高可用主從配置”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何用nginx + keepAlive 實現(xiàn)高可用主從配置”吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、臺江網(wǎng)站維護(hù)、網(wǎng)站推廣。
Keepalived軟件起初是專為LVS負(fù)載均衡軟件設(shè)計的,用來管理并監(jiān)控LVS集群系統(tǒng)中各個服務(wù)節(jié)點的狀態(tài),后來又加入了可以實現(xiàn)高可用的VRRP (Virtual Router Redundancy Protocol ,虛擬路由器冗余協(xié)議)功能。因此,Keepalived除了能夠管理LVS軟件外,還可以作為其他服務(wù)(例如:Nginx、Haproxy、MySQL等)的高可用解決方案軟件
Keepalived高可用服務(wù)對之間的故障切換轉(zhuǎn)移,是通過 VRRP 來實現(xiàn)的。在 Keepalived服務(wù)正常工作時,主 Master節(jié)點會不斷地向備節(jié)點發(fā)送(多播的方式)心跳消息,用以告訴備Backup節(jié)點自己還活著,當(dāng)主 Master節(jié)點發(fā)生故障時,就無法發(fā)送心跳消息,備節(jié)點也就因此無法繼續(xù)檢測到來自主 Master節(jié)點的心跳了,于是調(diào)用自身的接管程序,接管主Master節(jié)點的 IP資源及服務(wù)。而當(dāng)主 Master節(jié)點恢復(fù)時,備Backup節(jié)點又會釋放主節(jié)點故障時自身接管的IP資源及服務(wù),恢復(fù)到原來的備用角色
關(guān)于怎么安裝這里不做敘述,首先配置 master 節(jié)點
! Configuration File for keepalived global_defs { router_id ip地址 #路由器標(biāo)識,最好寫主機(jī)名或者IP地址,用于標(biāo)識 } vrrp_script chk_nginx { #配置檢查方式,chk_nginx為自定義名稱 script "/etc/keepalived/nginx_check.sh" #腳本的文件地址 interval 2 weight 20 #此值需要大于MASTER的priority減去BACKUP的priority } vrrp_instance VI_1 { state MASTER #主節(jié)點為:MASTER,備節(jié)點為:BACKUP interface eth0 #當(dāng)前虛擬機(jī)網(wǎng)卡 virtual_router_id 51 # 虛擬路由編號,主從要一直 priority 100 #優(yōu)先級 數(shù)值越大,獲取處理請求的優(yōu)先級越高 advert_int 1 authentication { #此為認(rèn)證方式,MASTER和BACKUP統(tǒng)一 auth_type PASS auth_pass 1314 } track_script { #調(diào)用上面的檢查腳本 chk_nginx } virtual_ipaddress { #設(shè)定VIP地址 18.50.129.74/24 } }
繼續(xù)配置slave節(jié)點。從節(jié)點backup配置和主節(jié)點一樣,只是state要改成backup, priority 值要比master小點即可。
! Configuration File for keepalived global_defs { router_id ip地址 } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight 20 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1314 } track_script { chk_nginx } virtual_ipaddress { 18.50.129.74/24 } }
最后編寫腳本 nginx_check.sh
#!/bin/bash A=`ps -C nginx --no-header | wc -l` if [ $A -eq 0 ]; then /usr/local/nginx/sbin/nginx sleep 2 if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then pkill keepalived fi fi
腳本說明:
腳本邏輯為檢測進(jìn)程如果沒有nginx就嘗試啟動一次,然后等礴兩秒,再檢測,如果還沒有上進(jìn)程就結(jié)束keepalived進(jìn)程。這樣VIP就會移動到備份節(jié)點
我這里是yum安裝的Nginx,所以直接使用nginx命令可以啟動nginx,如果你是源碼安裝,或者需要配置下環(huán)境變量或者更改下啟動命令和絕對路徑,并測試是否能正常啟動
如果覺得等待兩秒的時候過長可以更改為1秒
測試:
查看兩個節(jié)點的Nginx服務(wù)是否啟動成功,如果keepalived啟動成功會調(diào)用啟動Nginx,前提需要保證Nginx能正常啟動
在Master故意更改錯Nginx配置文件,并停止Nginx服務(wù)過幾秒查看VIP是否已經(jīng)移動至BACKUP,正常是會移動到BACKUP節(jié)點
恢復(fù)Master節(jié)點,查看VIP是否回到Master,正常VIP會綁定到Master
感謝各位的閱讀,以上就是“如何用nginx + keepAlive 實現(xiàn)高可用主從配置”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何用nginx + keepAlive 實現(xiàn)高可用主從配置這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)站欄目:如何用nginx+keepAlive實現(xiàn)高可用主從配置
本文鏈接:http://www.aaarwkj.com/article22/jsddjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站建設(shè)、企業(yè)建站、網(wǎng)頁設(shè)計公司、標(biāo)簽優(yōu)化、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)