1、需要2台虚机,分别安装上Java、Tomcat、Nginx、Ipvs和Keepalived
2、规划(关闭防火墙:systemctl stop firewalld.service):
(1)虚拟ip用 192.168.109.110
(2)RC01 Master机器的ip: 192.168.109.129 , Nginx端口80,Tomcat端口8080
(3)RC02 Backup机器的ip:192.168.109.130 ,Nginx端口80,Tomcat端口8080
3、配置Nginx(nginx.conf),Nginx对两台机器的Tomcat做负载均衡 ,配置如下图
4、配置Keepalived
4.1、RC01 master配置,示例如下:
4.1、RC02 backup配置,示例如下:
4.3、使用ip addr命令验证虚拟地址192.168.109.110是否绑定上:
4.4、让Keepalived监控Nginx的状态, 当NginX停止服务的时候能够自动切换,从而实现服务的高可用
4.4.1、新建脚本文件NginxCheck.sh,并修改文件权限::chmod777 NginxCheck.sh
NGINX=/soft/nginx/sbin/nginx PORT=80
nmap localhost-p $PORT | grep "$PORT/tcp open"
#echo $?
if [ $? -ne 0 ];then
$NGINX -s stop
$NGINX
sleep 3
nmap localhost -p $PORT | grep "$PORT/tcp open"
[ $? -ne 0 ] && cd /usr/sbin && pkill keepalived
echo "over"
fi
4.4.2、然后在keepalived.conf中添加对对脚本的调用
在VRRP服务器配置前面增加如下配置
vrrp_script chk_http_port {
script "/etc/keepalived/NginxCheck.sh"
interval 2
weight 2
}
在vrrp_instance配置里面的最后部分,添加如下配置
track_script {
chk_http_port
}