keepalived安装与nginx的主从双机热备配置

nginx检测脚本

#!/bin/bash
run=`ps -C nginx --no-header | wc -l`
if [ $run -eq 0 ]
then
 /usr/local/nginx/sbin/nginx -s stop
 /usr/local/nginx/sbin/nginx
 sleep 3
 if [ `ps -C nginx --no-header | wc -l` ]
 then
  killall keepalived
 fi
fi

 安装keepalived

 yum -y install gcc pcre-devel zlib-devel openssl-devel keepalived

配置/etc/keeplived/keepalived.conf
 

global_defs {  
   #notification_email {  
   #  [email protected]
   #}  
   #notification_email_from [email protected]  
   #smtp_server 192.168.200.1  
   #smtp_connect_timeout 30  
   router_id LVS_DEVEL  
}
# 一定要有的空格
vrrp_script chk_http_port {# 一定是写在vrrp_instance前面
   script "/usr/local/src/check_nginx.sh"  
   interval 2      # 检测脚本执行的间隔2秒  
   weight 2
}  
# 一定要有的空格
vrrp_instance VI_1 {  
    state MASTER   # 备份服务器上将 MASTER 改为 BACKUP    
    interface eth0 # 网卡  
    virtual_router_id 51   # 主、备机的virtual_router_id必须相同  
    priority 100     # 主、备机取不同的优先级,主机值较大,备份机值较小  
    advert_int 1  
    authentication {  
        auth_type PASS  
        auth_pass 1234  
    }  
    virtual_ipaddress {  
        192.168.96.138 # VRRP H虚拟地址  
    }
    track_script { # 追踪trace_script要定在virtual_ipaddress的后面
      chk_http_port
    }
}  

启动keepalived服务

service keepalived start

查看是否生效 

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:18:9f:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.15.253/24 brd 192.168.15.255 scope global eth0
    inet 192.168.15.252/32 scope global eth0
    inet6 fe80::a00:27ff:fe18:9f0b/64 scope link 
       valid_lft forever preferred_lft forever

如果keepalived服务启动后出现主备机都有虚ip的情况,请查看网卡是否开启混杂模式

 ip link set eth1 promisc on 

参考文档:https://www.cnblogs.com/kevingrace/p/6138185.html

猜你喜欢

转载自my.oschina.net/u/232595/blog/2050876