▲单独架构的小伙伴看这里:(学习杰哥视频的作业第5-6天)
1、实现haproxy+keepalived集群高可用集群转发
一、实验环境:
1、haproxy+keepalived:192.168.37.101-102
2、VIP:192.168.37.200
3、web服务器:192.168.37.103-104
3.1 分别在两台web服务器安装httpd
# yum install httpd
3.2 web服务器1:192.168.37.103
# echo web1:192.168.37.103 > /var/www/html/index.html
3.3 web服务器2:192.168.37.104
# echo web2:192.168.37.104 > /var/www/html/index.html
二、修改两台haproxy+keepalived服务器系统参数,使haproxy可以绑定在不存在的IP地址,和开启IP地址转发;并使配置生效
# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
# sysctl -p
三、haproxy+keepalived主服务器
1、安装haproxy和keepalived
# yum install haproxy keepalived
2、配置主keepalived
# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id server1
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_iptables
}
vrrp_instance VIP1{
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.37.200 dev eth0 lable eth0:1
}
}
3、配置haproxy
# vim /etc/haproxy/haproxy.cfg
listen web
bind 192.168.37.200:80
server web1 192.168.37.103 weight 1 check inter 3000 fall 3 rise 5
server web1 192.168.37.104 weight 1 check inter 3000 fall 3 rise 5
四、haproxy+keepalived从服务器
1、安装haproxy和keepalived
# yum install haproxy keepalived
2、配置从keepalived
# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id server2
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_iptables
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.37.200 dev eth0 lable eth0:1
}
}
3、配置haproxy
# vim /etc/haproxy/haproxy.cfg
listen web
bind 192.168.37.200:80
server web1 192.168.37.103 weight 1 check inter 3000 fall 3 rise 5
server web1 192.168.37.104 weight 1 check inter 3000 fall 3 rise 5
2、实现LVS+keepalived高可用集群。
一、实验环境:
1、lvs+keepalived:192.168.37.101-102
2、VIP:192.168.37.200
3、web服务器:192.168.37.103-104
3.1 分别在两台web服务器安装httpd
# yum install httpd
3.2 web服务器1:192.168.37.103
# echo web1:192.168.37.103 > /var/www/html/index.html
3.3 web服务器2:192.168.37.104
# echo web2:192.168.37.104 > /var/www/html/index.html
二、配置keepalived服务器(两台都要配置)
1、在 /etc/keepalived/keepalived.conf 文件内容尾增加如下代码:
include /etc/keepalived/conf.d/*.conf
2、编辑keepalived的lvs部分配置文件
# vim /etc/keepalived/conf.d/dr.conf
virtual_server 192.168.37.200 80 {
delay_loop 10
lb_algo rr
lb_kind DR
!persistence 60
protocol TCP
real_server 192.168.37.103 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.104 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
三、WEB服务器端操作(两台同样操作)
# vim lvs_web.sh
#!/bin/bash
vip=192.168.37.200
mask='255.255.255.255'
dev=lo:1
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig $dev $vip netmask $mask #broadcast $vip up
#route add -host $vip dev $dev
;;
stop)
ifconfig $dev down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac
# bash lvs_web.sh start