以下隻是簡單的安裝配置,并沒有測試這套負載,各種參數大家可以自己測試
vip:10.0.50.170
lvs server:10.0.50.183
real server:10.0.50.184/185
183/184/185同步時間,并且安裝nginx
# ntpdate time.nist.gov
# yum install nginx
# /etc/init.d/nginx start
在184/185上編寫測試頁面/usr/share/nginx/html/index.html
183上安裝ipvsadm*和keepalived
# yum install keepalived ipvsadm*
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface em1
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.50.170
virtual_server 10.0.50.170 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 10.0.50.184 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
real_server 10.0.50.185 80 {
# /etc/init.d/keepalived start
# chkconfig keepalived on
# cd /etc/init.d/
# vi lvs
#!/bin/sh
# description: Start LVS of Director server
WEB_VIP=10.0.50.170
WEB_RIP1=10.0.50.184
WEB_RIP2=10.0.50.185
SET_VIP () {
/sbin/ifconfig em1:0 $WEB_VIP netmask 255.255.255.0 broadcast $WEB_VIP up
/sbin/route add -host $WEB_VIP dev em1:0
/sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3
/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1
/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP2:80 -g -w 1
case "$1" in
start)
/sbin/ipvsadm -C
SET_VIP
touch /var/lock/ipvsadm >/dev/null 2>&1
echo "ipvsadm start"
;;
stop)
/sbin/ipvsadm -C
/sbin/ipvsadm -Z
/sbin/ifconfig em1:0 down
route del $WEB_VIP > /dev/null 2>&1
rm -fr /var/lock/ipvsadm >/dev/null 2>&1
echo "ipvsadm stoped"
status)
if [ ! -e /var/lock/ipvsadm ];then
echo "ipvsadm is stoped "
exit 1
else
/sbin/ipvsadm -ln
echo "ipvsadm is ok"
fi
restart)
route del $WEB_VIP > /dev/null 2>&1
SET_VIP
echo "ipvsadm restart .."
*)
echo "Usage :$0 {start|stop|status}"
esac
exit 0
# /etc/init.d/lvs start
184/185機器都執行lvsrs腳本
# vi lvsrs
#!/bin/bash
#description : start Real Server
VIP=10.0.50.170
./etc/rc.d/init.d/functions
start)
echo " Start LVS of Real Server "
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
#注釋:這四句目的是為了關閉ARP廣播響應,使VIP不能向網絡内發送廣播,以防止網絡出現混亂
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
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Director server"
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 "Usage: $0 {start|stop}"
exit 1
# /etc/init.d/lvsrs start
1.我同僚曾經問過兩台實體機的實作:
例如以上183/184上同時安裝并啟動nginx\keepalived\lvs腳本\lvsrs腳本
2.關于以下兩個差別:
或者/sbin/ipvsadm -A -t $WEB_VIP:80 -s rr
本文轉自 guowang327 51CTO部落格,原文連結:http://blog.51cto.com/guowang327/1669873,如需轉載請自行聯系原作者