nginx+keepalived

keepalived是一款服务器状态检测和故障切换的工具。在其配置文件中,可以配置主备服务器和该服务器的状态检测请求。也就是说keepalived可以根据配置的请求,在提供服务期间不断向指定服务器发送请求,如果该请求返回的状态码是200,则表示该服务器状态是正常的,如果不正常,那么keepalived就会将该服务器给下线掉,然后将备用服务器设置为上线状态。

​Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

一、准备

  1. 两台服务器(互相可以ping通)
  2. 都装nginx、keepalived
  3. 虚拟ip需要跟服务器ip在同一个网段

二、安装

  1. nginx

    参见我的另一篇文章

  2. keepalived

    yum install keepalived –y

    安装之后,在 etc 里面生成目录 keepalived ,有文件 keepalived.conf

三、配置

  1. keepalived主服务器配置(IP:192.168.0.6)

    global_defs {
    notification_email {
    782435839@qq.com
    } #定义报警邮件地址
    notification_email_from 782435839@qq.com
    smtp_server 127.0.0.1 #邮箱服务器
    smtp_connect_timeout 30 #定义超时时间
    router_id vm01 #定义路由标识信息,相同局域网唯一,一般为主机名
    }
    vrrp_script chk_http_port {
    script "/etc/nginxKeep/nginx_check.sh"
    interval 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 1111
    }
    virtual_ipaddress {
    192.168.0.50 // VRRP H 虚拟地址
    }
    }

  2. keepalived丛服务器配置(IP:192.168.0.7)

    跟主服务器一样

    不同点修改

    router_id vm02 #定义路由标识信息,相同局域网唯一,一般为主机名
    state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
    priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小

  3. 检测脚本

    nginx_check.sh

    !/bin/bash

    nginx进程是否存在

    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
    #尝试启动一次nginx,停止5秒后再次检测
    /etc/nginx
    sleep 5
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
    #如果启动没成功,就杀掉keepalive触发主备切换
    service keepalived stop
    fi
    fi

四、测试

两台服务器启动nginx和keepalived,访问虚拟ip192.168.0.50,都可访问到
关闭主服务器nginx和keepalived,192.168.0.50依旧可以访问

备注:

  1. 主要配置文件的权限为题
  2. 主要防火墙要开放端口
  3. selinux可能需要关闭

补充:
查找yum安装gcc的具体位置
rpm -qa | grep gcc
查找软件安装位置
rpm -ql gcc-4.8.5-36.el7.x86_64
卸载
yum -y remove gcc

posted @ 2020-05-17 23:03  2步  阅读(252)  评论(0)    收藏  举报