部署准备:

  两台CentOS 7主机HA1和HA2

CentOS 7 基于rpm包安装Nginx:

  由于Base源中没有Nginx,所以要安装EPEL源,命令如下:

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist ##检查是否已添加至源列表

然后就可以用yum安装相应的rpm包了

主备模型部署开始:

  1.两台主机各自安装Nginx,并自行设置好测试页

  2.keepalived配置文件示例:

! Configuration File for keepalived

global_defs {
notification_email {
root@localhost
}
notification_email_from admin@ka.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
} /*进程状态探测脚本*/
/*务必要定义在实例之外,再在实例内调用*/
/*且脚本名字尽量不要用完整单词,如check等,我第一次用此名导致脚本执行失败,可用ck,chk等代替为妙*/
vrrp_script ck_nginx {
script "killall -0 nginx"
interval 2
weight -5
} vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 dev eno16777736 label eno16777736:0
}
/*在实例内调用脚本*/
track_script {
ck_nginx
}
}

  3.开始测试效果:

    ①现在备节点启用keepalived,显示

    ②再在主节点开启keepalived,备节点的日志显示

    此时,访问nginx的结果是

    ③在主节点上停止nginx,再次访问服务,结果是HA2,符合需求


主主模型部署开始:

  HA1:          HA2:

    主          备

    备          主

  HA1配置文件:

! Configuration File for keepalived

global_defs {
notification_email {
root@localhost
}
notification_email_from admin@ka.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
} vrrp_script ck_nginx {
script "killall -0 nginx"
interval 2
weight -5
} vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 dev eno16777736 label eno16777736:0
}
track_script {
ck_nginx
}
} vrrp_instance VI_2 {
state BACKUP
interface eno16777736
virtual_router_id 52
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.111 dev eno16777736 label eno16777736:1
}
track_script {
ck_nginx
}
}

  HA2配置文件:

! Configuration File for keepalived

global_defs {
notification_email {
root@localhost
}
notification_email_from admin@ka.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
} vrrp_script ck_nginx {
script "killall -0 nginx"
interval 2
weight -5
} vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 51
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 dev eno16777736 label eno16777736:0
}
track_script {
ck_nginx
}
} vrrp_instance VI_2 {
state MASTER
interface eno16777736
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.111 dev eno16777736 label eno16777736:1
}
track_script {
ck_nginx
}
}

  测试开始:

  ①现在HA2上开启keepalived,效果如下:

  ②再在HA1上开启,效果是:

  ③回到HA2,使用ifconfig查看结果是:

注意:

  脚本中用到的killall命令如果是最小化安装默认是没有此命令的,需要运行:

yum -y install psmisc

KeepAlived主备/主主模型高可用Nginx的更多相关文章

  1. 4、keepalived高可用nginx负载均衡

    keepalived: HTTP_GET        //使用keepalived获取后端real server健康状态检测 SSL_GET(https)  //这里以为这后端使用的是http协议 ...

  2. Keepalived+LVS实现LNMP网站的高可用部署

    Keepalived+LVS实现LNMP网站的高可用部署   项目需求   当我们访问某个网站的时候可以在浏览器中输入IP或者域名链接到Web Server进行访问,如果这个Web Server挂了, ...

  3. keepalived安装配置实战心得(实现高可用保证网络服务不间断)

    keepalived安装配置实战心得(实现高可用保证网络服务不间断) 一.准备2台虚拟机     安装的系统是:centos-release-7-1.1503.el7.centos.2.8.x86_6 ...

  4. KeepAlived主备模型高可用LVS

    部署前准备: 1.至少4台主机:两个Director(HA1,HA2),两个Real Server(RS1,RS2) 2.Director之间时间必须同步,且关闭各主机的防火墙和Selinux 3.出 ...

  5. 【 Linux 】Keepalived实现双主模型高可用集群

    要求:    1. 两台web服务器安装wordpress,数据库通过nfs共享    2. 使用keepalived实现双主模型 环境:    主机:        系统:CentOS6.7 x64 ...

  6. Docker Compose搭建Redis一主二从三哨兵高可用集群

    一.Docker Compose介绍 https://docs.docker.com/compose/ Docker官方的网站是这样介绍Docker Compose的: Compose是用于定义和运行 ...

  7. Mssql主备见证的弊端及主备模式主down掉怎么恢复

    mssql主备见证有个没有解决的问题,mssql的主备是针对单个库的,有时候单个或多个库主备切换了,但是整个主数据库并没有挂掉,并且还运行着其他的库,程序检测到的数据库连接是正常的,只是部分库连接不了 ...

  8. nginx+keepalived+tomcat+memcache实现双VIP高可用及Session会话保持

    Nginx+Keepalived+Tomcat+Memcached 实现双VIP负载均衡及Session会话保持 IP 信息列表: 名称         IP                      ...

  9. lvs+keepalived部署k8s v1.16.4高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

随机推荐

  1. 搞定迅雷固件在TP-LINK WR720N,127.0.0.1 9000 获取不到激活码

    本帖最后由 exzzzipad 于 2014-7-2 22:33 编辑 基本情况:设备:TP-LINK WR720N目前固件:[antclan][20120825]720N-4M-NAS-withSA ...

  2. ZOJ 3481. Expand Tab

    题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4278 题意: 给出一些文本片段,把文本中的 Tab 字符根据配置,替换成 ...

  3. system verilog的一些总结(从其他博客复制来的)

    转载自 http://blog.sina.com.cn/s/blog_e7fec2630101f5t9.html SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE 136 ...

  4. C++11引用临时变量的终极解析

    工作中遇到一个引用临时变量的问题,经过两天的学习,私以为:不仅弄明白了这个问题,还有些自己的独到见解. 这里使用一个简单的例子来把自己的学习过程和理解献给大家,如果有什么问题请不吝指正.   **** ...

  5. Bootstrap3-技巧之解决Bootstrap模态框切换时页面抖动 or页面滚动条

    Bootstrap为了让所有的页面(这里指内容溢出和不溢出)显示效果一样,采取的方法如下: 当Modal显示时,设置body -- overflow:hidden;margin-right:15px; ...

  6. BCM94352HMB蓝牙BCM20702A0在Ubuntu 14.04下的驱动方法

    作者:秋忆 出处:http://www.cnblogs.com/qiuyi21/p/bcm20702a0_ubuntu.html 先确认蓝牙的产商编号(idVendor)和产品编号(idProduct ...

  7. 编译安装php

    ./configure --prefix=/usr/local/php \--with-libdir=lib64 \--enable-fpm \--with-fpm-user=roter \--wit ...

  8. TestLink安装及整合Jira

    TestLink安装及整合Jira 1.Testlink 安装部署 Testlink是一个开源的测试管理工具,主要用于管理测试用例,从测试需求.测试计划.测试用例管理和用例执行,到最后的结果分析,一套 ...

  9. 磁盘阵列(RAID)实例

    raid技术分类可以分为基于软件raid技术和基于硬件raid技术 raid又分为raid-0.raid-1.raid-5和raid-10 Raid有”廉价磁盘冗余阵列”的意思,就是利用多块廉价的硬盘 ...

  10. [小哥Allegro72讲速成视频]

    http://v.qq.com/vplus/df932a993679cf80a0b6c87bb849e22c 第01讲 Allegro常用组件介绍 视频链接:http://v.qq.com/boke/ ...