前提条件,nginx已经下载,并且已经负载均衡tomcat的项目
1.下载 keepalived
yum install keepalived -y
2.进入 keepalived配置文件目录
cd /etc/keepalived/
3.配置keepalived配置文件
清空配置文件慎用 echo 0>keepalived.conf
重新写入配置 vim /etc/keepalived/keepalived.conf
这是主ip的配置文件
vrrp_script chk_http_port {
script "/usr/local/bin/check_http_port.sh" # 指定脚本路径
interval 2 # 检查间隔,单位为秒
weight 2 # 调整优先级
}
#vrrp_instance:定义了主节点的配置。
vrrp_instance VI_1 {
state MASTER # 指定节点角色为MASTER
interface eth0 # 关联了节点使用的网络接口
virtual_router_id 51 # 该虚拟路由器的ID
priority 100 # 优先级设置,数值越大优先级越高
advert_int 1 # 发送VRRP通告的时间间隔,单位为秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 # 虚拟IP地址
}
track_script {
chk_http_port # 调用之前定义的vrrp_script脚本
}
}
这是备用的配置文件
vrrp_script chk_http_port {
script "/usr/local/bin/check_http_port.sh" # 指定脚本路径
interval 2 # 检查间隔,单位为秒
weight 2 # 调整优先级
}
#vrrp_instance:定义了主节点的配置。
vrrp_instance VI_1 {
state MASTER # 指定节点角色为MASTER
interface eth0 # 关联了节点使用的网络接口
virtual_router_id 51 # 该虚拟路由器的ID
priority 90 # 优先级设置,数值越大优先级越高 跟主不同的地方
advert_int 1 # 发送VRRP通告的时间间隔,单位为秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 # 虚拟IP地址
}
track_script {
chk_http_port # 调用之前定义的vrrp_script脚本
}
}
脚本的配置文件
主要是检测nginx的进程是否在进行,如果检测出来nginx已经关闭,那么将关闭keppalived,备用ip机上线
#!/bin/bash
nginxpid=`ps -C nginx --no-header | wc -l`
if [ $nginxpid -eq 0 ];then
systemctl stop keepalived
pkill -9 keepalived
Fi
4.启动keepalived
systemctl start keepalived
5.查看是否成功虚拟ip
ip a