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