当前位置:首页 > 服务器技术 > nginx

keepalived nginx 主备配置

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监听到后,再做应用层的请求转发。

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


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!