keepalive+nginx架构
一.配置真实服务器web1和web2
1.关闭防火墙,并在真实服务器下载http服务
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install httpd -y
2.分别在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 httpd
web2
[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 httpd
web1
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 -y
2.编辑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 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 LVS01 # 修改名称
vrrp_skip_check_adv_addr
#vrrp_strict #关闭严格模式
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script check_down {
script "/etc/keepalived/ng.sh"
interval 1
weight -30
fall 3
rise 2
timeout 2
}
vrrp_script check_down {
script "/etc/keepalived/ng.sh" #指明脚本的位置
interval 1 #每隔1s 执行一次检测
weight -30 #如果 脚本执行失败自动减少优先级30
fall 3 # 3次不成功才标注为失败
rise 2 #nginx 重新起来后检测两次成功 才真的成功
timeout 2 #超时时间 2s
}
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.240.188 #修改ip
}
track_script {
check_down
}
}
5.在192.168.240.13(由于12机上环境不干净换机做)上 vim /etc/keepalived/keepalived.conf
router_id LVS02 #修改为LVS02
vrrp_skip_check_adv_addr
#vrrp_strict #注释关闭严格模式
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script check_down {
script "/etc/keepalived/ng.sh"
interval 1
weight -30
fall 3
rise 2
timeout 2
}
vrrp_instance VI_1 {
state BACKUP #修改为备
interface ens33 #网卡
virtual_router_id 51
priority 80 #优先级
advert_int 1
authentication {
auth_type PASS
auth_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 在客户机查看