码迷,mamicode.com
首页 > 其他好文 > 详细

keepalived nginx 主备配置

时间:2018-08-30 18:24:46      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:脚本   ESS   alived   stat   https   运行   ns3   nbsp   应用层   

keepalived  nginx 主备配置(多主多备同理)

1.Nginx服务安装

  nginx 不区分主备,在两台服务上安装两个即可。

  安装参考:https://www.cnblogs.com/zwcry/p/9454647.html

2.Keepalived服务安装

  keepalived 区分主备、多主多备的。

  keepalived 多主多备 是把 单主单备 复制多份,调下优先级配置即可。

  安装参考:https://www.cnblogs.com/zwcry/p/9542867.html

  主备配置参考:https://www.cnblogs.com/zwcry/p/9549756.html

3.环境描述

  两台服务器(已按照1、2教程安装)

  IP.192.168.159.129

    nginx 已安装

    keepalived 已安装

  IP.192.168.159.130

    nginx 已安装

    keepalived 已安装

4.修改keepalived.conf配置

  192.168.159.129 (主)keepalived.conf

    cd /etc/keepalived/  #进入默认配置目录

    vim keepalived.conf  #编辑配置信息

    修改为如下内容

! Configuration File for keepalived

vrrp_script chk_nginx {  #虚拟路由沉余协议脚本
  script "/etc/keepalived/script/nginx_chk.sh"  #执行脚本 该脚本权限必须是可以执行的X
  interval 2  #上面的脚本没两秒执行一次
  weight 0  #权重  0为不变
}

vrrp_instance VI_1 {
  state MASTER  #两个值(主:MASTER  备:BACKUP),必须大写
  interface ens33  #网卡接口,ip a查看,上面主备搭建教程有讲
  virtual_router_id 51  #虚拟路由ID,主备或多主多备,需要全部设置一样
  priority 101  #优先级,越高越优先使用该服务
  advert_int 1  #多个keepalived的通讯检测间隔,单位秒
  authentication {  #认证类型与密码,主备或多主多备需要设置一样
    auth_type PASS
    auth_pass 1111
  }

  track_script {  #执行脚本
    chk_nginx  #上面定义的vrrp_script chk_nginx
  }

    virtual_ipaddress {
      192.168.159.110  #定义虚拟IP,换行可以定义多个
    }
  }

  192.168.159.130(备) keepalived.conf

    cd /etc/keepalived/  #进入默认配置目录

    vim keepalived.conf  #编辑配置信息

    修改为如下内容

! Configuration File for keepalived

vrrp_script chk_nginx {
  script "/etc/keepalived/script/nginx_chk.sh"
  interval 2
  weight 0
}

vrrp_instance VI_1 {
  state BACKUP
  interface ens33
  virtual_router_id 51
  priority 99
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
  }

  track_script {
    chk_nginx
  }

  virtual_ipaddress {
    192.168.159.110
  }
}    

5.编写vrrp_script  nginx_chk.sh脚本(该脚本必须有执行权限)

  192.168.159.129(主)nginx_chk.sh

    cd /etc/keepalived/script/  #无目录,自己创建

    vim nginx_chk.sh  编辑脚本

    添加如下内容  

#!/bin/bash
if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
  /usr/local/nginx/sbin/nginx
  sleep 2
  if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
    /etc/init.d/keepalived stop
  fi
fi

保存

chmod 775 nginx_chk.sh  #赋值执行权限 

  192.168.159.130(备) nginx_chk.sh

    cd /etc/keepalived/script/  #无目录,自己创建

    vim nginx_chk.sh  编辑脚本

    添加如下内容  

#!/bin/bash
if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
  /usr/local/nginx/sbin/nginx 
  sleep 2
  if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
    /etc/init.d/keepalived stop
  fi
fi

保存

chmod 775 nginx_chk.sh  #赋值执行权限 

 

6.测试

  1)停止nginx,nginx自动重启成功

    技术分享图片

 

  2)停止主keepalived,虚拟IP自动切换至备keepalived

    技术分享图片

    技术分享图片

    技术分享图片

 

  3)访问虚拟IP自动跳转至nginx

    技术分享图片

 

  4)其他测试不演练了

注:Keepavlied不影响Nginx服务,Keepalived运行状态或非运行状态,Nginx该怎样还是怎样。

  Keepalied只是配合lvs将访问虚拟IP的请求,转发到虚拟IP所在服务器上。而这台服务器上的Nginx监听到后,再做应用层的请求转发。

keepalived nginx 主备配置

标签:脚本   ESS   alived   stat   https   运行   ns3   nbsp   应用层   

原文地址:https://www.cnblogs.com/zwcry/p/9561317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!