通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装后的网络架构图;

直接master1上keepalived.conf配置文件内容:

! Configuration File for keepalived

global_defs {

notification_email {

wgkgood@163.com

}

notification_email_from wgkgood@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/data/sh/check_nginx.sh"

interval 2

weight 2

}

# VIP1

vrrp_instance VI_1 {

state MASTER

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151

priority 100

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  1111

}

virtual_ipaddress {

192.168.33.188

}

track_script {

chk_nginx

}

}

# VIP2

vrrp_instance VI_2 {

state BACKUP

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 152

priority  90

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  2222

}

virtual_ipaddress {

192.168.33.199

}

track_script {

chk_nginx

}

}

在另外一台服务器33.10上同样配置,只需要把相应的state对改就OK,把原先的master改成backup,把backup改成master即可,然后在两台服务器分别启动keepalived服务即可,然后访问两个VIP即可。如下粘贴一下master2配置文件内容:

! Configuration File for keepalived

global_defs {

notification_email {

wgkgood@163.com

}

notification_email_from wgkgood@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/data/sh/check_nginx.sh"

interval 2

weight 2

}

# VIP1

vrrp_instance VI_1 {

state BACKUP

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151

priority 90

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  1111

}

virtual_ipaddress {

192.168.33.188

}

track_script {

chk_nginx

}

}

# VIP2

vrrp_instance VI_2 {

state MASTER

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 152

priority  100

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  2222

}

virtual_ipaddress {

192.168.33.199

}

track_script {

chk_nginx

}

}

最后需要在两台Nginx主服务器上配置/data/sh/check_nginx.sh脚本,内容如下:

#!/bin/bash

#auto check nginx  process

killall  -0   nginx

if

[[ $? -ne 0 ]];then

/etc/init.d/keepalived stop

fi

如下图情况,两个VIP在一台服务器,是由于另外一台服务器down机,VIP都漂移到本机网卡下。

双主在企业实施中需要注意的地方:

1、配置文件必须设置不同的VRRP名称,同时优先级和VIP设置也同样需要注意。

2、网站总访问量为两台Nginx之和,可以写脚本实现。

3、两个VIP存在后,外网如果需要访问,需要做域名映射到两个VIP上即可。

4、这样就是基于DNS负载均衡模式。

5、需要配置监控实时监控VIP访问状态是否正常。

企业Nginx+Keepalived双主架构案例实战的更多相关文章

  1. Nginx+Keepalived双主架构实现

    Keepalived+Nginx实现高可用Web负载均衡 Master 192.168.0.69 nginx.keepalived Centos7.4backup 192.168.0.70 nginx ...

  2. Centos7+nginx+keepalived集群及双主架构案例

    目录简介 一.简介 二.部署nginx+keepalived 集群 三.部署nginx+keepalived双主架构 四.高可用之调用辅助脚本进行资源监控,并根据监控的结果状态实现动态调整 一.简介 ...

  3. nginx+keepalived双主高可用负载均衡

    实验环境及软件版本:CentOS版本: 6.6(2.6.32.-504.el6.x86_64)nginx版本: nginx-1.6.3keepalived版本:keepalived-1.2.7 主LB ...

  4. keepalived+双主架构部署

    在高可用集群环境中,keepalived使用的是VIP,利用keepalived自带的服务监控功能和自定义脚本来实现MYSQL故障时自带切换. Keepalived基于VRRP协议,虚拟冗余路由协议, ...

  5. keepalived+双主架构

    简介 keepalived是基于VRRP协议的,全称 Virtual Redundent Routing Protocal 虚拟路由协议,为解决静态路由单点故障引起的网络失效问题设计的一套主备协议 两 ...

  6. 配置nginx + keepalived 双主模式(双机互为主备)

  7. [转] Haproxy、Keepalived双主高可用负载均衡

    http://blog.chinaunix.net/uid-25266990-id-3989321.html 在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepaliv ...

  8. keepalived+双主实践HA

    工作不怎么忙,搞点儿开发吧差点儿事,就想着弄点儿架构的事儿.正好前段时间看过关于keepalived+双主实现高可用的文章,也恰好身边的朋友所在的公司也部分用这个架构.没什么事儿就搞搞吧,正好对比下M ...

  9. MySQL系列详解七:MySQL双主架构演示-技术流ken

    前言 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mys ...

随机推荐

  1. Spark算子--leftOuterJoin和rightOuterJoin

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/cb71cd3ac5d7965a2c61891659264d54.html leftOuterJoin和righ ...

  2. 如何在外部终止一个pengding的promise对象

    今天在整理前段时间做过的项目,发现之前在集成web环信的时候遇到过一个奇怪的需求:需要终止一个正在进行等待返回的promise,或者阻止其调用resolve和reject.(具体为何会有这种需求我也不 ...

  3. thinkPHP内置字符串截取msubstr函数用法详解

    作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...

  4. ssh密码

  5. 2017-06-23(chmod whoami chown)

    文件权限设定 chmod u-x newfile chmod u-x,g+w newfile chmod a=rwx newfile [mode=421] r = 4 , w=2, x=1 chmod ...

  6. python_如何在循环引用中管理内存?

    案例: python中通过引用计数来回收垃圾对象,在某些环形数据结构(树,图--),存在对象间的循环引用,比如树的父节点引用子节点,子节点同时引用父节点,此时通过del掉引用父子节点,两个对象不能被立 ...

  7. x64内核HOOK技术之拦截进程.拦截线程.拦截模块

    x64内核HOOK技术之拦截进程.拦截线程.拦截模块 一丶为什么讲解HOOK技术. 在32系统下, 例如我们要HOOK SSDT表,那么直接讲CR0的内存保护属性去掉. 直接讲表的地址修改即可. 但是 ...

  8. Ubuntu 11.10 Server下搭建Maven私服

      安装Nexus服务的文档可以参考官方站点:http://www.sonatype.com/books/nexus-book/reference/install-sect-install.html ...

  9. struts 中的addFieldError

    addFieldError("字段名","错误信息")给一个字段(属性)添加错误消息 在action中添加 this.addFieldError("p ...

  10. css3 box-shadow让我们实现图层阴影效果

    box-shadow box-shadow: h-shadow v-shadow blur spread color inset;box-shadow:2px 2px 3px rgba(50,50,5 ...