當前位置:
首頁 > 知識 > 使用 keepalived 的ip漂移搭建主從web

使用 keepalived 的ip漂移搭建主從web

  • keepalived 的原理請自行百度,這裡利用其ip漂移功能,實現 主從web的高可用。

ip漂移指一個虛擬ip,在2個真實ip(主從機)之間漂移,外部訪問這個虛擬ip。

達到的效果:主從機的web都開啟服務。主機web宕機,從機web開始接管服務。等待主機開始服務後,主機開始對外服務,從機待命。

apt-get install keepalived或其他方式安裝

主機:

xlj@ubuntu:~$ cat /etc/keepalived/keepalived.conf

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 4
router_id LVS_DEVEL
}

vrrp_script chk_nc {
script "/home/xlj/check.sh"
interval 6
weight -20
}

vrrp_instance VI_1 {
state MASTER

interface eth0
virtual_router_id 51
priority 100
advert_int 1

authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.111.111
}
track_script {
chk_nc
}
#notify_master /home/yonyou/nchome0509xin/keepalive/start.sh
#notify_backup /home/yonyou/nchome0509xin/keepalive/stop.sh
}

從機:

xlj@ubuntu:~$ cat /etc/keepalived/keepalived.conf

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 4
router_id LVS_DEVEL
}

vrrp_script chk_nc {
script "/home/xlj/check.sh"
interval 6
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 1111
}
virtual_ipaddress {
192.168.111.111
}
track_script {
chk_nc
}
#notify_master /home/yonyou/nchome0509xin/keepalive/start.sh
#notify_backup /home/yonyou/nchome0509xin/keepalive/stop.sh
}

配置提示:

  1. state為 MASTER或BACKUP
  2. virtual_router_id 2機要相同
  3. authentication 為防止非法加入要求的授權,2機要相同。
  4. virtual_ipaddress 為要虛擬的ip,2機相同。
  5. track_script 是健康檢查腳本配置,本例是調用check.sh判斷。
  6. 其他參數可以百度

其中,健康檢查腳本主從機都相同:

xlj@ubuntu:~$ cat /home/xlj/check.sh
#!/bin/bash
COUNT=1
COUNT=`ps -ef | grep java | grep -v grep | wc -l`
if [ $COUNT -gt 0 ] ; then
exit 0
else
exit 1
fi
xlj@ubuntu:~$

意思是檢查java進程是否存在,存在則返回0,代表ok。

主從機分別啟動服務:service keepalived restart

  • 查看keepalived日誌。默認日誌在 /var/log/syslog:

xlj@ubuntu:~$ tail -f /var/log/syslog
Jun 17 16:26:08 ubuntu Keepalived_vrrp[9306]: Registering gratuitous ARP shared channel
Jun 17 16:26:08 ubuntu Keepalived_vrrp[9306]: Opening file "/etc/keepalived/keepalived.conf".
Jun 17 16:26:08 ubuntu Keepalived_vrrp[9306]: Configuration is using : 69085 Bytes
Jun 17 16:26:08 ubuntu Keepalived_healthcheckers[9305]: Registering Kernel netlink command channel
Jun 17 16:26:08 ubuntu Keepalived_healthcheckers[9305]: Opening file "/etc/keepalived/keepalived.conf".
Jun 17 16:26:08 ubuntu Keepalived_healthcheckers[9305]: Configuration is using : 11714 Bytes
Jun 17 16:26:08 ubuntu Keepalived_healthcheckers[9305]: Using LinkWatch kernel netlink reflector...
Jun 17 16:26:08 ubuntu Keepalived_vrrp[9306]: Using LinkWatch kernel netlink reflector...
Jun 17 16:26:08 ubuntu Keepalived_vrrp[9306]: VRRP_Instance(VI_1) Entering BACKUP STATE
Jun 17 16:26:08 ubuntu Keepalived_vrrp[9306]: VRRP_Script(chk_nc) succeeded

注意,訪問的是虛擬ip:

http://192.168.111.111:8080/

web頁面看不出到底訪問的是主機還是從機,建議你的web應用提供一個頁面針對主機還是從機顯示不同的信息。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

用PHP和Ajax進行前後台數據交互——以用戶登錄為例
資料庫的三大範式以及五大約束
一種解決HTTP抓取網頁超時設置無效的方法
Java Class文件學習

TAG:科技優家 |

您可能感興趣

日產 Silvia S14:高性能的漂移 show car
耐克Nike Air Huarache Drift Prm 華萊士漂移6
FURIDASHI:Drift Cyber Sport:一款適合漂移愛好者的賽車遊戲
街機跑酷《Blast Valley》、駕駛競速《CarX漂移賽車》
任天堂「搖桿漂移」遭集體投訴,Siri、FaceApp隱私泄露上黑板
玩家發現新Switch的Joycon手柄更難撥動,或為改善搖桿漂移情況?
行雲流水般的漂移,機車屆的Ken Block!
特斯拉「Track Mode」開啟賽道模式 如拓海般輕鬆玩轉漂移
好物推薦:Ninebot卡丁車上手門檻低,還能玩漂移
《Drift It!》:在賽車道上秀出漂移特技
因為Switch手柄漂移,有人把任天堂告了
Toy Fair 2019:變形金剛電影工作室系列漂移非三變
任天堂首次回應Switch手柄搖桿漂移:有問題找客服
Tribby電動漂移車:和孩子來場愉快安全的漂移賽
Switch手柄漂移是設計缺陷?外媒:任天堂將推出免費維修
任天堂官方回應Joy-Con「漂移」問題
2020款Mercedes-賓士 CLA45車擁有382馬力和後輪驅動漂移模式
任天堂將免費維修Switch漂移手柄,包括過保產品
任天堂將無條件為Switch手柄漂移用戶提供維修服務
任天堂Switch手柄漂移門發酵 面臨北美集體訴訟