使用 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
}
配置提示:
- state為 MASTER或BACKUP
- virtual_router_id 2機要相同
- authentication 為防止非法加入要求的授權,2機要相同。
- virtual_ipaddress 為要虛擬的ip,2機相同。
- track_script 是健康檢查腳本配置,本例是調用check.sh判斷。
- 其他參數可以百度
其中,健康檢查腳本主從機都相同:
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手柄漂移門發酵 面臨北美集體訴訟