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