keepalived+nginx,场景适用于非高并发,但又偏核心业务
VIP: 192.168.3.111
Node1: 192.168.3.171
Node2: 192.168.3.175
用户 || ISP || Virtual IP [192.168.3.111] | | Node1[192.168.3.171] Node2[192.168.3.175]
Node1配置文件: [root@localhost ~]# cat /etc/keepalived/keepalived.conf vrrp_script check_nginx { script "/usr/bin/killall -0 nginx" interval 1 #每秒钟检查一次 weight 2 #每次priority增加2 如果状态正常的话 } vrrp_instance VI_1 { interface eth1 state MASTER virtual_router_id 51 priority 101 #Master为101,Slave为100 authentication { auth_type PASS auth_pass 123456 } track_script { check_nginx } virtual_ipaddress { 192.168.3.111 dev eth1 } } Node2配置文件: [root@localhost ~]# cat /etc/keepalived/keepalived.conf vrrp_script check_nginx { script "/usr/bin/killall -0 nginx" interval 1 weight 2 } vrrp_instance VI_1 { interface eth1 state BACKUP virtual_router_id 51 priority 100 authentication { auth_type PASS auth_pass 123456 } track_script { check_nginx } virtual_ipaddress { 192.168.3.111 dev eth1 } }
Note: 停止Nginx或Keepalived本身,两台都会切换; 在负载较高的服务器上,如果没有对“服务”进行冗余而频繁切换IP是不严谨的,nopreempt可以防止来回抢占IP; nopreempt需要state为BACKUP模式下才允许,并且给它们相同的route_id,两台间优先级较高的将优先取得VIP; /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1
近期评论