keepalive+nginx架构

一.配置真实服务器web1和web2
1.关闭防火墙,并在真实服务器下载http服务
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install  httpd  -y2.分别在web1和web2上制作网页,并开启http服务
web1
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# echo  zxy13 >  /var/www/html/index.html
[root@localhost html]# systemctl  start  httpdweb2
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# echo  zxy14 >  /var/www/html/index.html
[root@localhost html]# systemctl  start  httpdweb1

web2

二.配置代理服务器
代理服务器:主192.168.240.11
备192.168.240.12
1.关闭防火墙,并安装epel源和nginx
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum  install epel-release.noarch  -y
[root@localhost ~]# yum  install nginx  -y2.编辑nginx配置文件
在192.168.240.11上
配置文件http语句块下加入组和server语句块下加入location匹配实现负载均衡


3.将192.168.240.11代理服务器上/etc/nginx/nginx.conf文件远程拷贝到192.168.240.12的/etc/nginx/nginx.conf

4.安装下载keepalive服务,编辑配置文件
在192.168.240.11上 vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1      # 修改邮箱地址smtp_connect_timeout 30  router_id LVS01            # 修改名称vrrp_skip_check_adv_addr  #vrrp_strict              #关闭严格模式vrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script check_down {script  "/etc/keepalived/ng.sh"   interval 1weight -30fall  3rise 2timeout 2
}vrrp_script check_down {script  "/etc/keepalived/ng.sh"   #指明脚本的位置   interval 1            #每隔1s 执行一次检测weight -30             #如果 脚本执行失败自动减少优先级30fall  3                # 3次不成功才标注为失败 rise 2                 #nginx  重新起来后检测两次成功 才真的成功  timeout 2               #超时时间  2s 
}vrrp_instance VI_1 {state MASTERinterface ens33    #修改网卡的名称virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.240.188  #修改ip}track_script {check_down}}


5.在192.168.240.13(由于12机上环境不干净换机做)上 vim /etc/keepalived/keepalived.conf
router_id LVS02  #修改为LVS02vrrp_skip_check_adv_addr#vrrp_strict  #注释关闭严格模式vrrp_garp_interval 0vrrp_gna_interval 0
}
vrrp_script check_down {script  "/etc/keepalived/ng.sh"interval 1weight -30fall  3rise 2timeout 2
}
vrrp_instance VI_1 {state BACKUP  #修改为备interface ens33  #网卡virtual_router_id 51priority 80  #优先级advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.240.188 #地址}track_script {check_down}
}

6.在客户机上测试
(1)curl 虚拟地址192.168.240.188

tcpdump客户机上抓包主服务器在发送报文
(2)关闭主服务器nginx使用ip a 查看 192.168.240.188 已经不在主服务器上

tcpdump客户机上抓包备服务器在发送报文

使用 ip a 命令查看备服务器192.168.240.13 ,192.168.240.188在备服务器上

启动主服务器
ip a 查看主服务器,192.168.240.188 在主服务器上被主服务器抢占

tcpdump -i ens33 host 224.0.0.18 -nn 在客户机查看
