栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Keepalived安装配置,建立Nginx高可用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Keepalived安装配置,建立Nginx高可用

Keepalived安装部署 Keepalived安装部署

1.解压
tar -zxvf keepalived-2.0.18.tar.gz
2.操压后进入到解压出来的目录,看到会有configure,那么就可以配置了(配置安装和nginx一样)
3.使用 configure命令配置安装目录与核心配置文件所在位置:

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

prefix:keepalived安装的位置
sysconf:keepalved核心配置文件所在位置,固定位置,改成其他位量则koepalved启动不了,/var/log/messages中会报错
3.1 配置过程中可能会出现警告值息,如下所示:

***WARNING - this build will not support IPVS with IPv6.Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.

3.2.安波libnl/libnl-3依赖

yum -y install libnl libnl-devel

3.3.重新configure一下,此时OK.
4.安装keepalived

make && make install

5.进入到/etc/keepalived,该目录下为keepalived核心配置文件

配置Keepalived

配置Keepalived - 主节点
1.通过命令vim keepalived.conf打开配置文件

global_defs {
	#路由id:当前安装keepalived的节点主机标识符,保证全局唯一
	 router_id keep_171
}
vrrp_instance VI_1 {
	# 表示状态是MASTER主机还是备用机BACKUP 
	state MASTER
	# 该实例绑定的网卡 
	interface ens33
	# 保证主备节点一致即可 
	virtual_router_id 51
	# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选 
	priority 100
	# 主备之间同步检查时间间隔,单位秒 
	advert_int 2
	# 认证权限密码,防止非法节点进入 
	authentication (
		auth_type PASS
		auth_pass 1111
	}
	# 虚拟出来的ip,可以有多个(vip) 
	virtual_ipaddress{192.168.1.161}
}

查看网卡名称

2.启动Keepalived
在sbin目录下进行启动(同nginx),如下图:

3.查看进程

ps -ef | grep keepalived


3.查看虚拟ip
在网卡ens33下,多了一个192.168.1.161,这个就是虚拟ip

配置Keepalived - 备节点

1.通过命令 vim keepalived.conf打开配置文件

global_defs{
	router_id keep_172
}
vrrp_instance VI_1 {
	#备用机设置为BACKUP
	state BACKUP 
	interface ens33
	virtual_router_id 51
	#权重低于MASTER 
	priority 80
	advert_int 2
	authentication(
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
	#注意:主备两台的vip都是一样的,绑定到同一个虚拟ip
		192.168.1.161
	}
}

2.启动 Keepalived

#启动keepalived
systemctl start keepalived
#停止keepalived
systemctl stop keepalived
#重启keepalived
systemctl restart keepalived

3.查看进程

ps -ef | grep keepalived

Keepalived配置Nginx自动重启

1.增加Nginx重启检测脚本

vim /etc/keepalived/check_nginx_alive_or_not.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
# 判断nginx是否宕机,如果宕机了,尝试重启 
if [ $A -eq 0];then
	/usr/local/nginx/sbin/nginx
	#等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机 
	sleep 3
	if [`ps -C nginx --no-header |wc-l`-eq 0];then
		killall keepalived
	fi
fi

增加运行权限

chmod +x /etc/keepalived/check_nginx_alive_or_not.sh

2.配置keepalived监听nginx脚本

vrrp_script check_nginx_alive {
	script "/etc/keepalived/check_nginx_alive_or_ not.sh"
	interval 2 # 每限两秒运行上一行脚本
	weight 10 # 如果脚本运行失败,则升级权重+10
}

3.在vrrp_instance中新增监控的脚本

track_script {
	check_nginx_alive  # 追踪 nginx 脚本
}

4.重启Keepalived使得配置文件生效

systemctl restart keepalived
配置Keepalived双主热备

规则:以一个虚拟ip分组归为同一个路由
2 主节点配置:

global_defs {
	router_id keep_171
}
vrrp_instance VI_1 { 
	state MASTER
	interface ens33
	virtual_router_id 51
	priority 100
	advert_int 1
	authentication{
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress{
		192.168.1.161
	}
}

vrrp_instance VI_2 {
	state BACKUP 
	interface ens33
	virtual_router_id 52
	priority 80
	advert_int 1
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress{
		192.168.1.162
	}
}

备用节点配置

global_defs {
	router_id keep_172
}

vrrp_instance VI_1 {
	state BACKUP
	interface ens33
	virtual_router_id 51
	priority 80
	advert_int 1
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
		192.168.1.161
	}
}

vrrp_instance VI_2{
	state MASTER
	interface ens33
	virtual_router_id 52
	priority 100
	advert_int 1
	authentication {
		auth_type PASS
		auth_pass 1111
	}
	virtual_ipaddress {
		192.168.1.162
	}
}

别忘记分别重启两条Keepalived

#重启Keepalived
systemctl restart keepalived
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号