nginx1.14.0版本高可用——keepalived双机热备

nginx不支持主从,因此咱们须要使用keepalive支持高可用。nginx

keepalived重要知识点shell

在局域网内,每一个主机上各安装一个keepalived,注意关闭防火墙firewalld,而后设定一个VIP(虚拟IP),主keepalived会得到受权在本身的主机上设置一个虚拟IP提供给应用层使用。ui

一旦此keepalived用shell脚本监测到此机器上的nginx挂掉以后,马上kill掉本身,同时也注销VIP。spa

局域网内另外一个keepalived感知(需关闭防火墙才能互相感知)到主keepalived挂掉,会把虚拟IP在本身所在机器上虚拟一个,此操做叫IP漂移。从而达到应用层对某个nginx挂掉无感知。3d

安装keepalivedcode

yum -y updaterouter

yum -y remove keepalivedserver

yum install keepalived –y
使用yum安装的会有一个默认配置文件模板
路径为/etc/keepalived/keepalived.conf
启动keepalived服务
systemctl start keepalived  对象

若是是这样就是启动成功了:blog

若是是这样就是启动失败,要检查是不是conf文件没改正确:

keepalived配置——发送邮件设置

global_defs {
   notification_email {              收件邮箱列表
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1 发件邮箱设置
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

keepalived 配置——获取网卡名称

查看本机网卡: IP a

keepalived.conf 配置——VIP配置 (virtual IP)

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/etc/keepalived/chk_nginx.sh"           监测nginx是否存活脚本,若是否,keepalived将kill掉本身
    interval 2
    weight -5
    fall 2
    rise 1
}

vrrp_instance VI_1 {
    state MASTER               字符串标识,能够随便写,好比backup
    interface eno16777736
    virtual_router_id 51
    priority 100     指定keepalived的优先级,最高优先级为主,能够设置所在机器的虚拟IP,其它从keepalived则不能。
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.200  指定一个虚拟IP :  VIP,后续作IP漂移。这个IP也是应用访问的IP
#192.168.10.210 能够设置多个虚拟IP
   } 
  track_script {
    chk_nginx 此虚拟IP检测存活对象的脚本,这里检测nginx
  }

}

 chk_nginx.sh脚本

A=`ps -C nginx --no-header |wc -l`     检测nginx存活数,若是是0,则是nginx已经挂掉了 if [ $A -eq 0 ]  ;   then     
echo 'nginx server is died'     
killall keepalived         kill掉本身
fi

keepalived启动、中止、查看存活状态命令

systemctl start keepalived.service       启动

systemctl stop keepalived.service       中止

systemctl status keepalived.service     查看状态

nginx启动、中止、查看运行状态

cd nginx目录

./sbin/nginx -t   检查nginx.conf脚本语法是否正常

./sbin/nginx     启动

./sbin/nginx -s stop     中止      Stop 是快速关闭,无论有没有正在处理的请求。
./sbin/nginx -s quit     退出       Quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的链接请求。

./sbin/nginx -s reload   重启

ps -ef|grep nginx       查看运行状态

ps -C nginx --no-header |wc -l   查看存活数。通常状况下,2是正常数,由于一个nginx启动会有两个nginx进程?
相关文章
相关标签/搜索