对于主备架构,始终存在一台服务器处于空闲状态,对于企业来说,资源分配就不很合理,如果要将两台服务器都利用起来,可以使用主主架构的方式,同时2台都对外服务,拥有2个VIP地址,同时接收用户的请求:
! Configuration File for keepalived global_defs { router_id TEST_HA } vrrp_script chk_80 { script "/usr/local/etc/keepalived/chk_status.sh" interval 5 weight -3 } vrrp_instance VI_1 { interface ens32 state MASTER priority 101 virtual_router_id 71 garp_master_delay 1 authentication { auth_type PASS auth_pass password } track_interface { ens32 } virtual_ipaddress { 192.168.137.99/32 } vrrp_instance VI_2 { interface ens32 state BACKUP priority 99 virtual_router_id 72 garp_master_delay 1 authentication { auth_type PASS auth_pass password } track_interface { ens32 } virtual_ipaddress { 192.168.137.100/32 } track_script { chk_80 } }
! Configuration File for keepalived global_defs { router_id TEST_HA } vrrp_script chk_80 { script "/usr/local/etc/keepalived/chk_status.sh" interval 5 weight -3 } vrrp_instance VI_1 { interface ens32 state BACKUP priority 99 virtual_router_id 71 garp_master_delay 1 authentication { auth_type PASS auth_pass password } track_interface { ens32 } virtual_ipaddress { 192.168.137.99/32 } track_script { chk_80 } } vrrp_instance VI_2 { interface ens32 state MASTER priority 101 virtual_router_id 72 garp_master_delay 1 authentication { auth_type PASS auth_pass password } track_interface { ens32 } virtual_ipaddress { 192.168.137.100/32 } track_script { chk_80 } }
/usr/local/sbin/keepalived
VIP1地址访问结果应该是反向代理服务器1的nginx页面:192.168.137.99 VIP2地址访问结果应该是反向代理服务器2的nginx页面:192.168.137.100
关闭反向代理1上面的nginx进程(/usr/sbin/nginx -s quit):VIP1的访问结果应该指向反向代理2的nginx的页面 重新开启反向代理1上面的nginx进程(/usr/sbin/nginx):VIP1的访问结果回到反向代理1的nginx页面 同理验证VIP2的高可用性: 重新开启反向代理2上面的nginx进程后:
/usr/sbin/nginx -s quit
/usr/sbin/nginx
1. 双主下的架构中,keepalived的配置文件必须设置不同的VRRP名称,同时优先级和VIP设置也不能相同 2. 双主下存在2个VIP地址,企业实际环境可域名解析到2个VIP上即可,DNS映射不同的VIP地址,也叫DNS负载均衡模式 3. 可以通过监控软件来实现VIP访问状态是否正常