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  #编辑配置信息

  谨记:该配置慎用空格,可以使用TAB或回车排版,空格会被识别为赋值,导致keepalived运行失败

   修改为如下内容

! 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  #编辑配置信息

  谨记:该配置慎用空格,可以使用TAB或回车排版,空格会被识别为赋值,导致keepalived运行失败  

   修改为以下内容

! 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 BACKUP#两个值(主:MASTER  备:BACKUP),必须大写
interface ens33#网卡接口,ip a查看,上面主备搭建教程有讲
virtual_router_id 51#虚拟路由ID,主备或多主多备,需要全部设置一样
priority 100#优先级,越高越优先使用该服务
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,换行可以定义多个
}
}

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)" = "" ]; then
/usr/local/nginx/sbin/nginx
sleep
if [ "$(ps -C nginx --no-heading|wc -l)" = "" ]; 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)" = "" ]; then
/usr/local/nginx/sbin/nginx
sleep
if [ "$(ps -C nginx --no-heading|wc -l)" = "" ]; 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 主备配置的更多相关文章

  1. nginx主备配置

    添加配置: proxy_next_upstream error timeout invalid_header http_500 http_503 http_502; upstream http.wea ...

  2. keepalived haproxy 主备配置

    global_defs { router_id k8s_master} vrrp_script chk_http_port {script "/etc/keepalived/check_ha ...

  3. LVS+Nginx(LVS + Keepalived + Nginx安装及配置)

    (也可以每个nginx都挂在上所有的应用服务器)  nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比nginx被广 ...

  4. LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  5. 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  6. Ubuntu16.04双网卡主备配置

    前几日写了一篇Ubuntu14.04双网卡主备配置,没成想变化总是这么快,今日安装某软件,提示最匹配的ubuntu版本是16.04,作为一个码农能有什么办法,只能不断去适应变化.拥抱变化. 首先16. ...

  7. MySQL备份与主备配置

    MySQL备份与主备配置 数据备份类型 全量备份:备份整个数据库 增量备份:备份自上一次备份以来(增量或完全)以来变化的数据 差异备份:备份自上一次完全备份以来变化的数据 全量备份 全量备份的方法有 ...

  8. Keepalived 主备配置

    keepalived主备或多主多备,配置都是一样配置方法,只是搭建多少的问题. 1.keepalived安装 参考:https://www.cnblogs.com/zwcry/p/9542867.ht ...

  9. keepalived安装实现nginx主备高可用

    . keepalived安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt ...

随机推荐

  1. bootstrap-table接合knockout.js

    function responseHandler(data) { if (data.ErrorNo > 0) { return; } var count = data.Data.TotalRow ...

  2. Irrelevant Elements UVA - 1635 二项式定理+组合数公式+素数筛+唯一分解定理

    /** 题目:Irrelevant Elements UVA - 1635 链接:https://vjudge.net/problem/UVA-1635 题意:給定n,m;題意抽象成(a+b)^(n- ...

  3. Java进阶01 String类(转载)

    String类包含在java.lang包中.这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class).我们不需要显式的使用import引入String类. ...

  4. [已解决]window下Can't connect to MySQL server on 'localhost' (10061)与无法启动MYSQL服务”1067 进程意外终止”

    查了一圈,发现都解决不了我的问题,查了 window 系统日志,提示缺少了某些文件,文件怎么丢的我也不知道,以下是解决办法. -- 我的 mysql 版本为 5.6.x 压缩包版本,我的 mysql ...

  5. git Staging Deleted files

    Use git rm foo to stage the file for deletion. (This will also delete the file from the file system, ...

  6. easyui datagrid onLoadSuccess加载两次。。

    今天使用EasyUI的datagrid时发现首次打开页面时onLoadSuccess方法执行了两次.后来发现主要问题是datagrid被初始化了两次.主要原因是一开始html中声明了dg为easyui ...

  7. 构造方法与构造块的执行顺序(区别于static)

    小面试题:在类的实例化时,会调用类的构造块(类中的构造块)和构造方法,无论构造方法在前还是在后,都先执行构造块 class Person{ public Person(){ System.out.pr ...

  8. cmd命令 sc

    SC 是用于与服务控制管理器和服务进行通信的命令行程序. 用法:sc <server> [command] [service name] <option1> <optio ...

  9. 使用RestTemplate发送multipart/form-data格式的数据

    现有业务场景需要使用RestTemplate发送一个post请求,请求格式为multipart/form-data的,可以使用以下方法: public Object sendRequest(Objec ...

  10. go build说明

    go build命令用于编译我们指定的源码文件或代码包以及它们的依赖包. 例如,如果我们在执行go build命令时不后跟任何代码包,那么命令将试图编译当前目录所对应的代码包.例如,我们想编译goc2 ...