Cent0S下使用LVS+KeepLive,進行負載均衡及高可用web服務器。
通過對本文章的閱讀:你可以瞭解LVS+KeepLive的安裝,按照步驟一步一步完成就能實現對2臺或N臺web服務器進行負載均衡,實現LVS的負載均衡及失效轉移。
一、需要的文件:
1、ipvsadm-1.24.tar.gz,下載地址:下載
2、keepalived-1.1.15.tar.gz,下載地址:下載
二、對LVS學習的網站推薦:
!!! Can not include OpenSSL headers files.
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
8、啓動或停止:service keepalived start
sudo chkconfig --add keepalived
sudo chkconfig --level 35 keepalived on
global_defs {
notification_email {
[email protected] #故障通知接收者郵箱,可以多個
[email protected]
}
notification_email_from [email protected] #故障發送者郵箱
smtp_server 192.168.62.130 #郵件服務器的IP
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #如果是備份LVS,則修改爲BACKUP
interface eth0
virtual_router_id 51 #2個LVS必須在一致
priority 100 #如果是備份LVS,則修改得比MASTER小,至少50的差距,比如49
advert_int 1
authentication {
auth_type PASS #主從LVS的時候,PASS一致纔可以。
auth_pass 1111
}
virtual_ipaddress {
192.168.62.100 #LVS的對外虛擬IP,可以是多個,這樣一般可以再域名解析的時候有幫助,比如電信,聯通的IP
192.168.62.99
192.168.62.98
}
}
#虛擬LVS代理80端口
virtual_server 192.168.62.100 8080 {
delay_loop 6
lb_algo wrr #壓力最小輪詢
lb_kind DR #LVS的路由模式
nat_mask 255.255.255.0
persistence_timeout 10
protocol TCP #指定轉發協議,TCP OR UDP
#真實服務器1
real_server 192.168.62.133 8080 {
weight 5 #權重,越大越高
TCP_CHECK {#relserve的狀態檢測設置部分,單位是秒
connect_timeout 10 #表示10秒無響應超時
nb_get_retry 3 #表示重試次數
dealy_before_retry 3 #表示重試間隔
connect_port 8080
}
}
#真實服務器2
real_server 192.168.62.134 8080 {
weight 1 #權重,越大越高,依據機器配置來設置
TCP_CHECK {#relserve的狀態檢測設置部分,單位是秒
connect_timeout 10 #表示10秒無響應超時
nb_get_retry 3 #表示重試次數
dealy_before_retry 3 #表示重試間隔
connect_port 8080
}
}
}
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.62.100:8080 wrr persistent 10
-> 192.168.62.134:8080 Route 1 0 0
-> 192.168.62.133:8080 Route 5 0 0
ifconfig eth0:0 192.168.62.100 //(VIP),這個VIP通過防火牆映射到公網IP
route add -host 192.168.62.100 dev eth0:0 //讓發往192.168.62.100的請求都經過eth0:0
2)、RelServer 1-N個服務器的配置,每個都要執行下
使用root用戶,在任意目錄下建議lvs_real.sh文件,將如下文字拷貝進去
#!/bin/bash#Description: Config realserver script
SNS_VIP=192.168.62.100 #對應LVS服務器的VIP
/etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_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 NETWork OK"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del $SNS_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 {start|stop}"
exit 1
esac
exit 0
#---------------------------------
chmod 755 ./lvs_real.sh
啓動腳本:
./lvs_real.sh start :