Centos7为网站服务搭建keepalived高可用
keepalived是什么
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
keepalived工作原理
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master
keepalived主要有三个模块
分别是core、check和vrrp。
core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
check负责健康检查,包括常见的各种检查方式。
vrrp模块是来实现VRRP协议的。
部署
环境:
Server1:192.168.171.11
Server2:192.168.171.12
VIP:192.168.171.13
部署:
Server1:
**yum -y install keepalived
编辑keepalived配置文件:
vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id 1 #设备在组中的标识,设置不一样即可 } #vrrp_script chk_nginx { #健康检查 #script "/etc/keepalived/ck_ng.sh" #检查脚本 #interval 2 #检查频率.秒 #weight -5 #priority减5 #fall 3 #失败三次 #} vrrp_instance VI_1 { #VI_1。实例名两台路由器相同。同学们要注意区分。 state MASTER #主或者从状态 interface ens32 #监控网卡 mcast_src_ip 192.168.171.11 #心跳源IP virtual_router_id 55 #虚拟路由编号,主备要一致。同学们注意区分 priority 100 #优先级 advert_int 1 #心跳间隔 authentication { #秘钥认证(1-8位) auth_type PASS auth_pass 123456 } virtual_ipaddress { #VIP 192.168.171.13/24 } #track_script { #引用脚本 #chk_nginx #} }
将配置文件拷贝给Server2
#scp -r /etc/keepalived/keepalived.conf 192.168.171.12:/etc/keepalived/
开机启动keepalived
systemctl enable keepalived.service
部署前端web(这里使用NGINX)
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx
systemctl enable nginx.service&& systemctl start nginx.service
编辑页面显示,方面后面测试
vi /usr/share/nginx/html/index.html
本机访问页面显示是否正常
curl -i localhost
启动keepalived
systemctl start keepalived.service
server2
安装keepalived
yum -y install keepalived
编辑keepalived配置文件
vi /etc/keepalived/keepalived.conf 将拷贝过来的文件做以下修改
state MASTER改为 state BACKUP
mcast_src_ip 192.168.171.12改为backup服务器实际的IP mcast_src_ip
priority 100改为priority 99
部署前端web(这里使用NGINX)
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx
systemctl enable nginx.service&& systemctl start nginx.service
编辑页面显示,方面后面测试
vi /usr/share/nginx/html/index.html
本机访问页面显示是否正常
curl -i localhost
启动keepalived
systemctl start keepalived.service
client访问测试:
curl 192.168.171.13
如果能正常访问master节点的网络资源,在将master的网线拔了,在访问171.13,观察网页已经切换
keepalived监控的是接口IP状态。无法监控服务状态,就会出现以下问题:
注意:
如果暂停nginx服务了,发现master节点并未切换到backup节点,导致VIP地址不能访问,出现这种问题的原因是keepalived监控的是接口IP状态。无法监控服务状态
解决办法:
编辑添加Nginx监控脚本
server1:
vi /etc/keepalived/ck_ng.sh
########################################
#!/bin/bash #检查nginx进程是否存在 counter=$(ps -C nginx --no-heading|wc -l) if [ "${counter}" = "0" ]; then #尝试启动一次nginx,停止5秒后再次检测 service nginx start sleep 5 counter=$(ps -C nginx --no-heading|wc -l) if [ "${counter}" = "0" ]; then #如果启动没成功,就杀掉keepalive触发主备切换 service keepalived stop fi fi
########################################
脚本添加执行权限
chmod +x /etc/keepalived/ck_ng.sh
server2:
vi /etc/keepalived/ck_ng.sh
########################################
#!/bin/bash #检查nginx进程是否存在 counter=$(ps -C nginx --no-heading|wc -l) if [ "${counter}" = "0" ]; then #尝试启动一次nginx,停止5秒后再次检测 service nginx start sleep 5 counter=$(ps -C nginx --no-heading|wc -l) if [ "${counter}" = "0" ]; then #如果启动没成功,就杀掉keepalive触发主备切换 service keepalived stop fi fi
########################################
脚本添加执行权限
chmod +x /etc/keepalived/ck_ng.sh
启动脚本:
将server1和server2中的注释取消
#vrrp_script chk_nginx { #健康检查
#script “/etc/keepalived/ck_ng.sh” #检查脚本
#interval 2 #检查频率.秒
#weight -5 #priority减5
#fall 3 #失败三次
#}
#track_script { #引用脚本
#chk_nginx
#}
然重启server1和server2中keepalived
systemctl restart keepalived
- keepalived+LVS+apache双机搭建高可用负载均衡web服务
- Centos 7搭建LVS+Keepalived高可用Web服务群集
- Nginx (三) 使用Keepalived搭建高可用服务
- CentOS6.2下搭建LVS(DR)+Keepalived实现高性能高可用负载均衡服务
- 搭建:LVS+Keepalived高可用Web服务群集环境
- CentOS7,keepalived搭建双机热备(高可用、keepalived、Nginx、Haproxy、反向代理)
- 第11周总结 (网站架构部署LNMP) (动态网站搭建) (数据库迁移操作,web服务与nfs服务连接操作) (负载均衡部署) (负载均衡配置文件灵活使用) (高可用冗余服务) (高可用服务企业实践)
- 大型网站分布式架构(十一)—— Keepalived+Nginx+Tomcat集群实现服务的高可用HA
- Nginx反向代理,负载均衡,Redis集群 Twemproxy,redis session共享,keepalived高可用-搭建千万级网站系统
- keepalived+LVS+apache双机搭建高可用负载均衡web服务
- Keepalived+Nginx+Tomcat搭建高可用服务
- Keepalived+Nginx+Tomcat搭建高可用的Web服务(一):主备模式
- Keepalived+Nginx+Tomcat搭建高可用的Web服务(二):双主模式
- Nginx+Keepalived+iis+Memcached搭建高可用的集群服务
- 转发【CentOS7搭建NGINX+KEEPALIVEDG高可用服务器实验结果】
- Keepalived实现服务高可用
- Centos7搭建sftp服务流程
- lvs DR模式 +keepalived 实现directory 高可用、httpd服务负载均衡集群
- keepalived+nginx高可用环境搭建
- Linux推荐-Red Hat5平台下的LAMP网站服务搭建(四)