准备工作:
192.168.16.128
192.168.16.129
两条虚拟机。安装好Nginx
安装Nginx
更新yum
安装Nginx:
操作命令:
什么是高可用?
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果一个系统能够一直提供服务,那么这个可用性则是百分之百,但是天有不测风云。所以我们只能尽可能的去减少服务的故障。
解决的问题?
在生产环境上很多时候是以Nginx
做反向代理对外提供服务,但是一天Nginx难免遇见故障,如:服务器宕机。当Nginx
虽然我们无法保证服务器百分之百可用,但是也得想办法避免这种悲剧,今天我们使用keepalived
来实现Nginx
的高可用。
双机热备方案
这种方案是国内企业中最为普遍的一种高可用方案,双机热备其实就是指一台服务器在提供服务,另一台为某服务的备用状态,当一台服务器不可用另外一台就会顶替上去。
keepalived是什么?
Keepalived
软件起初是专为LVS
负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)
功能。因此,Keepalived
除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)
故障转移机制
Keepalived
高可用服务之间的故障切换转移,是通过VRRP
在Keepalived
服务正常工作时,主Master
节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup
节点自己还活着,当主Master
节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主Master
实现过程
安装keepalived
yum
修改主机(192.168.16.128)keepalived配置文件
yum
方式安装的会生产配置文件在/etc/keepalived
keepalived.conf:
virtual_ipaddress
interface
需要根据服务器网卡进行设置通常查看方式ip addr
authentication
修改备机(192.168.16.129)keepalived配置文件
keepalived.conf:
检测脚本:
脚本授权:chmod 775 check_nginx_pid.sh
说明:脚本必须通过授权,不然没权限访问啊,在这里我们两条服务器执行、VIP(virtual_ipaddress:192.168.16.130)
模拟nginx
修改两个服务器默认访问的Nginx
的html
首先访问192.168.16.130
,通过vip
进行访问,页面显示192.168.16.128
这个时候192.168.16.128
再次访问vip(192.168.16.130)
发现这个时候页面显示的还是:192.168.16.128
现在直接将192.168.16.128
服务器关闭,在此访问vip(192.168.16.130)
现在发现页面显示192.168.16.129
这个时候keepalived
keepalived