仿站小工具wordpress,校园云网站建设,洛阳制作网站的公司,自己怎么设计公主房文章目录 简介配置过程前置环境请看创建健康检查脚本结果测试 简介
在我们通过nginxkeepalived实现高可用后#xff0c;会发现nginx出现故障的时候keepalived并不会将虚拟ip切换到备份服务器上其原理就是nginx和keepalived是两个独立的服务#xff0c;Nginx的故障状态不会触… 文章目录 简介配置过程前置环境请看创建健康检查脚本结果测试 简介
在我们通过nginxkeepalived实现高可用后会发现nginx出现故障的时候keepalived并不会将虚拟ip切换到备份服务器上其原理就是nginx和keepalived是两个独立的服务Nginx的故障状态不会触发Keepalived本身的故障转移机制。 所以我们可以通过配置健康检查机制来解决这个问题
配置过程
前置环境请看
链接: keepalivednginx实现高可用的案例详解主从模式 lvs和nginx的配置都在前置环境里
主机名ip服务虚拟ipngx1192.168.10.11nginxkeepalived192.168.10.111ngx2192.168.10.12nginxkeepalived192.168.10.111
创建健康检查脚本
vim /etc/keepalived/chk_nginx_port.sh#!/bin/bash
nginx_count$(ps -C nginx --no-header | wc -l)
if [ $nginx_count -eq 0 ]; thenecho Nginx is not runningsystemctl start nginxnginx_count$(ps -C nginx --no-header | wc -l)if [ $nginx_count -eq 0 ]; thensystemctl stop keepalivedfi
fi简单解释 这个脚本的作用是监测 Nginx 服务的运行状态并在其未运行时尝试启动它。如果 Nginx 启动失败脚本会停止 Keepalived 服务。
赋予这个脚本执行权限
chmod x /etc/keepalived/chk_nginx_port.sh更改keepalived配置文件
vim /etc/keepalived/keepalived.confglobal_defs {router_id LVS_DEVEL1
}vrrp_script chk_nginx_port {script /etc/keepalived/chk_nginx_port.sh
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.111}track_script {chk_nginx_port
}
}重启keepalived
systemctl restart keepalived这个是主从的配置所以从端不需要配置健康检查 如果是双主配置另一端同理
结果测试
ngx1停止nginx服务
vim /etc/nginx/nginx.conf随便添几个字母让nginx起不来就好 重启nginx
systemctl restart nginx可以看到会报错 查看ip
ip add可以发现虚拟ip已经转移 到ngx2查看ip
ip add可以看到转移过来的虚拟ip
访问虚拟ip 也是ngx2的web页面
其他服务同理,更改脚本内容即可