KeepAlived主备/主主模型高可用Nginx
部署准备:
两台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的更多相关文章
- 4、keepalived高可用nginx负载均衡
keepalived: HTTP_GET //使用keepalived获取后端real server健康状态检测 SSL_GET(https) //这里以为这后端使用的是http协议 ...
- Keepalived+LVS实现LNMP网站的高可用部署
Keepalived+LVS实现LNMP网站的高可用部署 项目需求 当我们访问某个网站的时候可以在浏览器中输入IP或者域名链接到Web Server进行访问,如果这个Web Server挂了, ...
- keepalived安装配置实战心得(实现高可用保证网络服务不间断)
keepalived安装配置实战心得(实现高可用保证网络服务不间断) 一.准备2台虚拟机 安装的系统是:centos-release-7-1.1503.el7.centos.2.8.x86_6 ...
- KeepAlived主备模型高可用LVS
部署前准备: 1.至少4台主机:两个Director(HA1,HA2),两个Real Server(RS1,RS2) 2.Director之间时间必须同步,且关闭各主机的防火墙和Selinux 3.出 ...
- 【 Linux 】Keepalived实现双主模型高可用集群
要求: 1. 两台web服务器安装wordpress,数据库通过nfs共享 2. 使用keepalived实现双主模型 环境: 主机: 系统:CentOS6.7 x64 ...
- Docker Compose搭建Redis一主二从三哨兵高可用集群
一.Docker Compose介绍 https://docs.docker.com/compose/ Docker官方的网站是这样介绍Docker Compose的: Compose是用于定义和运行 ...
- Mssql主备见证的弊端及主备模式主down掉怎么恢复
mssql主备见证有个没有解决的问题,mssql的主备是针对单个库的,有时候单个或多个库主备切换了,但是整个主数据库并没有挂掉,并且还运行着其他的库,程序检测到的数据库连接是正常的,只是部分库连接不了 ...
- nginx+keepalived+tomcat+memcache实现双VIP高可用及Session会话保持
Nginx+Keepalived+Tomcat+Memcached 实现双VIP负载均衡及Session会话保持 IP 信息列表: 名称 IP ...
- lvs+keepalived部署k8s v1.16.4高可用集群
一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...
随机推荐
- [delphi]indy idhttp post方法
网易 博客 LOFTCam-用心创造滤镜 LOFTER-最美图片社交APP 送20张免费照片冲印 > 注册登录 加关注 techiepc的博客 万事如意 首页 日志 LOFTER 相册 音乐 ...
- OpenSSLKey
http://www.jensign.com/opensslkey/opensslkey.cs //************************************************** ...
- 一起学习KenDo
这几年用Telerik做WEB,积累了一些感觉.因为打算涉足移动APP开发,打算接下来学习KenDo.
- ASP.NET网站中获取当前虚拟目录的应用程序目录的方法(转)
[原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法 ASP.NET网站中获取当前虚拟目录的应用程序目录的方法1.问题描述:有时候,某个网页控件会被不同目录下文件使用,此时如果该控件中有一 ...
- js代码生成form,解决mvc的url参数过长问题
在MVC项目中,通常下载的文件的简单方式是直接采用 location.href+查询参数方式. var searchParams = { studentName: $("#StudentNa ...
- Qt 环境下的mapx控件-------2
今天花了一天的时间去查找mapx相关的资料,但是到最后想要的东西还是一无所获,不过还是学到了很多东西.下面以大家分享一下: mapx软件的安装:下载后安装mapx软件,成功后会在安装路径下存在acti ...
- matlab函数_连通区域
1. matlab函数bwareaopen──删除小面积对象格式:BW2 = bwareaopen(BW,P,conn)作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域.算法:(1)De ...
- 常用linux维护命令
cat /etc/issue 查看linux版本信息
- CSS 定位机制 position
position属性W3School有详细介绍 1.(position:relative;)相对定位会按照元素的原始位置对该元素进行移动.relative 2.(position:absolute;) ...
- 解决linux yum无法安装mysql
yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 wget http://repo.mysql.com/mysql-com ...