1.配置檔案的名字不要型錯了。開始我將配置檔案寫成keeplive.conf,執行後也不報錯,但無法看到vip。日誌裡也看不到任何有價值資訊。直到後來反覆檢查才發現可能配置檔名有問題,修正為keepalived.conf終於能使用「ip a」命令看到vip了。
virtual_server 172.24.1.230 80 }view codereal_server 172.24.1.232 80 }
}
測試時發現開始可以通過網域名稱來正常訪問,後來測試停止nginx後就再也無法訪問了。
但通過輸入nginx的真實ip位址訪問是可以的。說明其服務沒有問題。而這時在keepalived的日誌也看不到任何有用的資訊。後經反覆分析,可能是這段配置的問題,主備服務均刪除重啟服務後訪問一切正常。
3.測試時停止nginx服務,發現不會自動重啟,同時vip也不會自動遷移到備機上。開始以為是檢查指令碼的問題,執行指令碼卻沒有問題。後來想到在指令碼裡加日誌看是否執行了指令碼發現應該是沒對指令碼檔案新增可執行許可權,所以執行:chmod +x check-nginx.sh 後發現日誌生成,問題解決,停止nginx服務將自動重啟。
4.主備切換,切換完成後,主機起來後,設定不再獲取主機權,以減少客戶端終端。(兩機都設為:state backup,通過設定優先順序高來預設主機,同時備機不要使用:nopreempt)
5.在兩台web server上執行realserver.sh指令碼,為lo:0繫結vip位址10.0.1.2、抑制arp廣播。
#!/bin/bashview code#description: config realserver
vip=10.0.1.2
/etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip
/sbin/route add -host $vip dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "realserver start ok"
;;stop)
/sbin/ifconfig lo:0 down
/sbin/route del $vip >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "realserver stoped"
;;*) echo "usage: $0 "
exit 1
esac
exit 0
7.明天繼續研究問題2中關於lvs的設定,看是否能做負載均衡,否則沒問題時始終只用一台機,有點浪費。
Keepalived雙機熱備
準備兩台虛擬機器 192.168.80.100 主伺服器 192.168.80.102 備份伺服器 在80.100虛擬機器上 systemctl stop firewalld 關閉防火牆 setenforce 0 關閉selinux 1 keepalived軟體安裝 yum install keep...
配置keepalived 雙機熱備
配置keepalived 雙機熱備 mkdir usr local keepalived tar zxvf keepalived 2.0.6.tar.gz c usr local keepalived cd usr local keepalived keepalived 2.0.6 configur...
Keepalived做雙機熱備
解壓以及編譯 tar xzf keepalived 1.2.7.tar.gz configure prefix opt keepalived make make install 配置keepalived 建立keepalived配置檔案keepalived.conf 只有虛擬ip功能,其他功能,例如...