使用Linux安装keepalived及其配置--高可用

  • 前提须知:nginx使用,keepalived与其搭配使用非常牛逼
  • Keepalived和nginx放在同一个服务器,会有一个公用的虚拟ip,挂掉一个nginx则另一个nginx服务器继续撑着,还是用那个公用的虚拟ip

介绍

Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要防止服务器单点故障的问题,可以通过其与Nginx的配合实现web服务器端的高可用.

Keepalived以VRRP协议为实现基础,使用VRRP协议来实现高可用性(HA).VRRP(Virtual Router Redundacy Protocol)协议用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成一个设备,向外提供虚拟路由IP(一个或多个),如下图所示:
在这里插入图片描述

安装

第一步:安装keepalived依赖的包

yum install -y gcc

yum install -y openssl-devel

yum install -y libnl3-devel

yum install -y popt-devel

yum install -y iptables-devel

yum install -y libnfnetlink-devel

yum install -y psmisc

第二步:编译安装keepalived

  • 将keepalived的安装包 上传到/usr/local/soft 目录下

在这里插入图片描述

cd /usr/local/soft

tar -zxvf keepalived-1.2.19.tar.gz -C /usr/local  

cd /usr/local/keepalived-1.2.19  

./configure --prefix=/usr/local/keepalived  

make && make install 

第三步:将 keepalived 安装成 Linux 系统服务

安装完成之后, 需要做一些工作复制默认配置文件到 默认路径  

mkdir /etc/keepalived  

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/  

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/  

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/  

cd /usr/local/keepalived-1.2.19  

cp ./keepalived/etc/init.d/keepalived.init /etc/init.d/

chmod 755 /etc/init.d/keepalived.init 

第四步:编写nginx检测脚本:

vi /etc/keepalived/nginx_check.sh

内容如下:

  • 删干净后 编辑模式下 直接copy
#!/bin/bash  

A=`ps -C nginx –no-header |wc -l`  

if [ $A -eq 0 ];then  

    /usr/local/nginx/sbin/nginx  

    sleep 2  

    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then  

        killall keepalived  

    fi  

fi  

赋予执行权限

chmod +x /etc/keepalived/nginx_check.sh 

配置主从库

  • 修改keepalived的Master配置文件:
vi /etc/keepalived/keepalived.conf 
  • 删干净后 编辑模式下 直接copy
  • 四个地方需要改(细节)
  • 1.interface ens33这里要通过ipaddr查看,也有可能是ens32,则要改回来
  • 2.unicast_src_ip 192.168.8.12这里要改成当前服务器的ip(每个人不同)
  • 3.priority 100 nginx主库才是100,其他nginx从库要把值给成低于100
  • 4.192.168.8.110 #虚拟ip配置完之后就用它访问 ,这里的网段和其主从库的nginx服务器一样,最后一位随你配 ,这个为公用的虚拟ip(通过这个来访问)
! Configuration File for keepalived       

global_defs {      

   router_id edt                         ##路由器标志    

}    

# 集群资源监控,组合track_script进行    

vrrp_script check_haproxy {    

	script "/etc/keepalived/nginx_check.sh"  #检测 nginx 状态的脚本路径  

	interval 2  #检测时间间隔  

	weight -20  #条件成立 权重减20  

}    

vrrp_instance PROXY {    

	# 设置当前主机为主节点,如果是备用节点,则设置为BACKUP   

	state MASTER

	# 指定HA监测网络接口,可以用ifconfig查看来决定设置哪一个    

	interface ens33

	# 虚拟路由标识,同一个VRRP实例要使用同一个标识,主备机    

	virtual_router_id 80    

	# 因为当前环境中VRRP组播有问题,改为使用单播发送VRRP报文  如果VRRP组播没问题,以下这块的内容可以注释掉。  

	# 这个地方需要关注,之前未做此设置,结果主备节点互相不能发现,因此主备节点都升级成了MASTER,并且绑定了VIP    

	# 主节点时,内容为:    

	unicast_src_ip 192.168.8.12

	# 设置优先级,确保主节点的优先级高过备用节点  

	priority 100    

	# 用于设定主备节点间同步检查时间间隔    

	advert_int 2    

	# 设置主备节点间的通信验证类型及密码,同一个VRRP实例中需一致    

	authentication {    

		auth_type PASS    

		auth_pass edt

	}    

	# 集群资源监控,组合vrrp_script进行    

	track_script {    

		check_haproxy    

	}    

	# 设置虚拟IP地址,当keepalived状态切换为MASTER时,此IP会自动添加到系统中    

	# 当状态切换到BACKUP时,此IP会自动从系统中删除    

	# 可以通过命令ip add查看切换后的状态    

	virtual_ipaddress {    

		192.168.8.110  #虚拟ip配置完之后就用它访问    

	}    

}  

开启keepalived

  • 随意地方输入以下命令即可
keepalived  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值