(NOTE:本文只提供 Keepalived 的下载安装及入门级部署,本人还在学习中,若有错误,欢迎指正!)
系统环境
阿里云 Ubuntu 16.04 轻应用服务器(学生),因为没有外网网卡(有内网网卡)【弹性ECS服务器有弹性外网网卡,但没使用过,不知道能不能达到预期效果】,所以部署完后,只能在内网测试 ╮(╯▽╰)╭.....,也可以本地用 wget http:// xxx.xxx.x.xxx 访问虚拟IP进行测试。
此系统下安装部署本人实测有效,若发生其他问题,请自行解决。
Keepalived 与Nginx 实现服务高可用,本文并没有Nginx的安装部署(请自行查看有关 Nginx 的文章)
依赖安装
必须安装的
apt-get install libpopt-dev daemon gcc libssl-dev libc-dev openssl libnl-dev libnfnetlink-dev libnl-3-dev libnl-genl-3.dev
Keepalived安装
apt-get install keepalived
很简单,安装完毕,我当时所安装的版本 Keepalived v1.2.24 (02/14,2019) 。
systemctl status keepalived 查看当前 Keepalived 服务的状态
systemctl start keepalived 启动 Keepalived 服务
systemctl stop keepalived 关闭 Keepalived 服务
keepalived -v 查看版本
whereis keepalived 查看 Keepalived 在哪些目录下
配置文件所在 /etc/keepalived/keepalived.conf (若不存在,自行创建目录及文件)
启动文件所在 /usr/sbin/keepalived
keepalived.conf 文件
# keepalived.conf 配置文件
global_defs {
router_id iZ2zec3nc5wsqad0674qimZ # 指定一个字符串给Keepalived,默认是主机名,也可写其他字符串
}
# 检测脚本执行
vrrp_script chk_health {
script "/opt/keepalived/check_nginx.sh" # 脚本所在位置
interval 1 # 检测脚本执行的间隔,间隔 1 秒 执行一次脚本
weight 1 # 权重
}
vrrp_instance VI_1 {
state MASTER # 主服务器 MASTER 备份服务器 BACKUP
interface eth0 # 网卡,看自己机器 网卡名 ifconfig
virtual_router_id 51 # 主备机必须相同
priority 100 # 主备机必须取不同的值,主机大于备机的值
advert_int 1
authentication { # 所有机器 默认都这样写
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.100.30 # 虚拟IP,可以写多个虚拟IP
}
}
check_nginx.sh 文件
#!/bin/bash
A='ps -C nginx -no-header |wc -1'
if [ $A -eq 0 ];then
/usr/sbin/nginx # Nginx 执行文件,所在目录
sleep 2
if [ 'ps -C nginx --no-header |wc -1' -eq 0 ];then
killall keepalived
fi
fi
~
默认 Nginx 已在运行中,启动 keepalived
systemctl start keepalived
此时使用,systemctl status keepalived 会包含以下内容出现
Active: active (running)
Keepalived 已部署成功了!!
网友评论