**
环境
四台centos7服务器
keepalived(master) 192.168.72.133
keepalived(backup) 192.168.72.129
httpd1 192.168.72.132
httpd2 192.168.72.138
本实验主要做的是keepalived实现Apache的高可用
**
master 和 backup 上操作
1.yum -y install keepalived ipvsadm
2. 修改配置文件 vim /etc/keepalived/keepalived
! Configuration File for keepalived
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 30
router_id LVS_DEVEL1
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.72.100
}
}
virtual_server 192.168.72.100 80 {#vip 相同网段内没有被占用的ip
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.72.132 80 {#httpd1服务器的ip
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.72.138 80 {#httpd2服务器的ip
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
**注意:
master和backup上面只有router_id ,权重,state不一样,其他的无需更改
注意修改网卡的名字
启动keepalived
关掉其中的一台,看vip是否漂移
漂移则代表成功
httpd节点上的操作
yum -y install httpd
systemctl start httpd
编写脚本
vim realserver.sh
#!/bin/bash
#description: Config realserver
VIP=192.168.72.100
/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 {start|stop}"
exit 1
esac
给权限
chmod +x realserver.sh
chmod 755 /etc/rc.d/init.d/functions
执行脚本
./realserver.sh start
测试能访问到Apache即可