使用Keepalived实现Nginx的双机主备高可用
1、概述
前面我们聊过使用 Nginx 为 后端Tomcat 做负载均衡、高可用,但是这时Nginx又成了单点,如果Nginx不幸挂掉,整个网站便无法访问。
此时我们就会用到另一个软件 —— Keepalived。
Keepalived 是一个用 C 编写的路由软件,Keepalived 会生成一个虚拟IP,此虚拟IP与多台真实的服务器的IP绑定,当用户发来请求到虚拟IP时,请求先路由到主服务器,当主服务器宕机后,请求会路由到备用服务器,以达到高可用的目的。
理论上两台或多台Nginx服务器的硬件配置应该一致,这样路由改变时,性能不会有太大的差别。
下面我们用一个例子,来实际操作一下。
2、场景说明
在两台服务器上,安装Nginx,并启动。
在两台服务器上安装Keepalived,进行配置,为Nginx做负载均衡,实现双机主备高可用。
A服务器配置为主机,B服务器配置为备机。
虚拟IP:192.168.1.88
A服务器IP(主):192.168.1.144
B服务器IP(备):192.168.1.22
3、安装Keepalived
在两台服务器上都需要安装Keepalived。
1)下载Keepalived
可以到Keepalived官网(https://www.keepalived.org)下载

图片来源于官网

图片来源于官网
2)将Keepalived压缩包,拷贝到两台服务器的 /home 目录下
3)解压Keepalived压缩包
在Linux系统执行 # tar -zxvf keepalived-2.2.4.tar.gz 命令进行解压。
4)安装依赖包
# yum -y install libnl libnl-devel
# yum install -y openssl openssl-devel
5)进入解压后的Keepalived目录
6)执行配置命令
# ./configure --prefix=/usr/local/keepalived --sysconf=/etc
7)执行编译并安装命令
# make && make install
8)安装成功后,在 /etc/keepalived 目录下,会看到 keepalived.conf 文件。
4、配置 keepalived.conf 文件
进入 /etc/keepalived 目录下,修改 keepalived.conf 文件。
A服务器配置如下:
! Configuration File for keepalived
global_defs {
# 全局唯一的主机标识
router_id server_a
}
vrrp_instance VI_1 {
# 标识是主节点还是备用节点,值为 MASTER 或 BACKUP
state MASTER
# 绑定的网卡
interface ens33
# 虚拟路由id,保证主备节点是一致的
virtual_router_id 51
# 权重
priority 100
# 同步检查时间,间隔默认1秒
advert_int 1
# 认证授权的密码,所有主备需要一样
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟IP
virtual_ipaddress {
192.168.1.88
}
}
B服务器配置如下:
! Configuration File for keepalived
global_defs {
router_id server_b
}
vrrp_instance VI_1 {
# 设置为备机
state BACKUP
interface ens33
virtual_router_id 51
# 权重设置的要比主机低
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟IP需要主备设置成一样
virtual_ipaddress {
192.168.1.88
}
}
5、启动Keepalived
1)进入 /usr/local/keepalived/sbin 目录
2)输入命令 # ./keepalived 即可。

此时,查看网卡,会发现主机的IP地址多了 192.168.1.88

6、停止A服务器,看虚拟IP是否路由到B服务器
经试验可知,A服务器关闭后,虚拟IP便路由到了B服务器。

7、综述
好了,至此,Keepalived的双机主备机制已经实现了。后面我们还会介绍Keepalived双主热备的配置方式。
希望大家多多留言交流,共同进步。
使用Keepalived实现Nginx的双机主备高可用的更多相关文章
- 使用Keepalived实现Nginx的自动重启及双主热备高可用
1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...
- Mysql+Keepalived双主热备高可用操作记录
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...
- Keepalived+Nginx+tomcat实现系统的高可用
Keepalived+Nginx+tomcat实现系统的高可用 1:安装vmware虚拟机 2:安装linux系统,我自己下载的centos6.5 3:安装JDK,tomcat 解压tomcat到/u ...
- Nginx的进程模型及高可用方案(OpenResty)
1. Nginx 进程模型简介 Nginx默认采用多进程工作方式,Nginx启动后,会运行一个master进程和多个worker进程.其中master充当整个进程组与用户的交互接口,同时对进程进行监护 ...
- keepalived + lvs marster 与 backup 之间的 高可用
简介 keepalived 是linux下一个轻量级的高可用解决方案,它与HACMP实现功能类似,都可以实现服务或者网络的高可用,但是又有差别:hacmp是一个专业的.功能完善的高可用软件,它提供了H ...
- Nginx+Zuul集群实现高可用网关
代码参考:https://github.com/HCJ-shadow/Zuul-Gateway-Cluster-Nginx Zuul的路由转发功能 前期准备 搭建Eureka服务注册中心 服务提供者m ...
- [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用
[MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...
- Nginx双机主备(Keepalived实现)
前言 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,起初是专为LVS负载均衡软件设计的,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的 ...
- Nginx+Keepalived 主备高可用 安装与配置
环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...
随机推荐
- Android从一个Fragment跳转到另一个Fragment后原来的组件不消失
问题描述 Activity上放置了一个Fragment,Fragment上有按钮,点了按钮后,应该跳转到另一个Fragment, but 原来的Fragment的按钮不会消失,新的Fragment不是 ...
- HCIA—(网络初相识)
网络 IT--> 信息服务 -->数据底层 云计算 大数据 CT--> 通信服务 -->通信服务 构建数据通信的协议 ICT-->信息通信 数据 + 通信 数通 基础 R ...
- idea构建servlet程序
1 新建maven项目 勾选maven_web模板 2 idea加载后应是如图所示 3 在main目录下新增两个文件夹,一个java 设置为源码根目录,另一个是resources 设置为源目录 4 在 ...
- eslint+prettier+husky+lint-staged 统一前端代码规范
eslint+prettier+husky+lint-staged 统一前端代码规范 遵循编码规范和使用语法检测,可以很好的提高代码的可读性,可维护性,并有效的减少一些编码错误. 1.终极目标 团队中 ...
- Linux中的DNS的正解析
目录 一.DNS概述 1.1.DNS定义 1.2.域名结构 1.3.DNS域名解析的方式 1.4.DNS服务器类型 1.5.BIND服务 BIND服务器端程序 二.构建DNS域名正向解析步骤 一.DN ...
- Shell-06-正则表达式
正则表达式 shell正则表达式分为两种 基础正则表达式:BRE 扩展正则表达式:ERE,扩展的表达式有 + .? .| 和 () 元字符表 * 匹配0次或多次 更多请查看相关网站 http://ww ...
- Python3实现Two-Pass算法检测区域连通性
技术背景 连通性检测是图论中常常遇到的一个问题,我们可以用五子棋的思路来理解这个问题五子棋中,横.竖.斜相邻的两个棋子,被认为是相连接的,而一样的道理,在一个二维的图中,只要在横.竖.斜三个方向中的一 ...
- 【笔记】主成分分析法PCA的原理及计算
主成分分析法PCA的原理及计算 主成分分析法 主成分分析法(Principal Component Analysis),简称PCA,其是一种统计方法,是数据降维,简化数据集的一种常用的方法 它本身是一 ...
- 问题求解与程序设计(C重新回顾:个人版)一
一.容易遗忘之转义字符 转义序列 含义 \n 换行 \t 水平制表 \\ 输出反斜杠 \a 响铃符 \'' 输出双引号 \' 输出单引号 \? 输出问号 \r 输出回车符(不换行,光标定位当前行的开始 ...
- DVWA(五):CSRF 全等级跨站请求伪造
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie.会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面 ...