Keepalived装置部署

  1. 下载地址:
    点我下载
  2. 通过ftp工具上传到linux中,/home/software
  3. 解压
    tar -zxvf keepalived-2.0.18.tar.gz
  4. 解压后进入到解压进去的目录,看到会有 configure ,那么就能够做配置了(配置装置和nginx截然不同)

配置 Keepalived - 主

  1. 通过命令 vim keepalived.conf 关上配置文件

    global_defs {# 路由id:以后装置keepalived的节点主机标识符,保障全局惟一router_id keep_171}vrrp_instance VI_1 {# 示意状态是MASTER主机还是备用机BACKUPstate MASTER# 该实例绑定的网卡interface ens33# 保障主备节点统一即可virtual_router_id 51# 权重,master权重个别高于backup,如果有多个,那就是选举,谁的权重高,谁就入选priority 100# 主备之间同步查看工夫距离,单位秒advert_int 2# 认证权限明码,避免非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚构进去的ip,能够有多个(vip)virtual_ipaddress {192.168.1.161}}

    附:查看网卡名称

  2. 启动 Keepalived
    在sbin目录中进行启动(同nginx),如下图:

配置 Keepalived - 备

  1. 通过命令 vim keepalived.conf 关上配置文件

    global_defs {router_id keep_172}vrrp_instance VI_1 {# 备用机设置为BACKUPstate BACKUPinterface ens33virtual_router_id 51# 权重低于MASTERpriority 80advert_int 2authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {# 留神:主备两台的vip都是一样的,绑定到同一个vip192.168.1.161}}
  2. 启动 Keepalived

    # 启动keepalivedsystemctl start keepalived# 进行keepalivedsystemctl stop keepalived# 重启keepalivedsystemctl restart keepalived
  3. 查看过程

    ps -ef|grep keepalived


Keepalived配置Nginx主动重启

  1. 减少Nginx重启检测脚本

    vim /etc/keepalived/check_nginx_alive_or_not.sh
    #!/bin/bashA=`ps -C nginx --no-header |wc -l`# 判断nginx是否宕机,如果宕机了,尝试重启if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginx# 期待一小会再次查看nginx,如果没有启动胜利,则进行keepalived,使其启动备用机sleep 3if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenkillall keepalivedfifi

    减少运行权限

    chmod +x /etc/keepalived/check_nginx_alive_or_not.sh
  2. 配置keepalived监听nginx脚本

    vrrp_script check_nginx_alive {script "/etc/keepalived/check_nginx_alive_or_not.sh"interval 2 # 每隔两秒运行上一行脚本weight 10 # 如果脚本运行失败,则降级权重+10}
  3. 在 vrrp_instance 中新增监控的脚本

    track_script {check_nginx_alive # 追踪 nginx 脚本}
  4. 重启Keepalived使得配置文件失效

    systemctl restart keepalived

配置Keepalived双主热备
规定:以一个虚构ip分组归为同一个路由
主节点配置:

global_defs {router_id keep_171}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.161}}vrrp_instance VI_2 {state BACKUPinterface ens33virtual_router_id 52priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.162}}

备用节点配置

global_defs {router_id keep_172}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.161}