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 ...
随机推荐
- flex acionscript png图片去除多余空白,生成合适大小图片
//最小矩形(非透明最小区域) public static function getMinRect(target:BitmapData):Rectangle{ return target.getC ...
- cocos2d-x:懒人数学函数
做游戏开发,要用到比较多的数学计算,对于程序员来说,还是用一种懒一点的方法,cocos2d-x方便开发者投机取巧...提供了很多方便的的数学函数,方便我们的数学计算.以下是在网上收集到的一些常用的数学 ...
- xampp3.2下mysql中文乱码终极解决方案
xmapp3.2.2中mysql已经被替换成了Mariadb,网上那些显示char语句已经失灵. 另外本文主要介绍的是手动在mysql中写入中文乱码问题 那么我们将采用如下三个步骤解决乱码问题 1.打 ...
- 初探VIM编辑器
初探VIM 引言---什么是Vim? 接触Linux这么久,想必对于一切皆文件的哲学思想已经不陌生了.因此,学习并掌握用一款Linux文本编辑器,对于玩转LInux来说,是很有必要的. vi编辑器是U ...
- 登录框密码框input框禁止复制、粘贴、剪切和右键功能
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- centos,nginx安装备忘
# ssh 登录慢解决 vim /etc/ssh/sshd_config UseDNS no # add limitsvi /etc/security/limits.conf* soft nproc ...
- java学习第17天(TreeSet HashSet)
Set集合的特点(与ArrayList相比) 无序,唯一 主要学习它的两个子类 HashSet集合 A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode() ...
- location.hash详解
一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如, http://www.example.com/index.html#print 就代表网页index.html的prin ...
- 获取View到顶部的高度
tv_title.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener ...
- Mysql存储过程调用
mysql存储过程实例教程 发布时间:2014-04-09编辑:JB01 这篇文章主要介绍了mysql存储过程的使用方法,mysql存储过程实例教程,有需要的朋友参考下. 1.1create p ...