Keepalived + Nginx 搭建高可用负载均衡服务器
Keepalived Nginx 负载均衡 大约 1690 字Keepalived 安装
https://www.zhangbj.com/p/351.html
添加监控 Nginx 脚本
Keepalived 配置文件
vrrp_script chk_nginx {
script "/usr/local/src/check_nginx.sh" #检测nginx是否存活脚本
interval 2 #检测脚本执行的间隔,单位:秒
weight 2
}
vrrp_instance VI_1 {
track_script {
chk_nginx # 调用vrrp_script指定的脚本
}
}
监控 Nginx 脚本
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y/%m/%d-%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
if [ $n -eq "0" ]; then
/etc/init.d/nginx start # 需确认/etc/init.d/目录下是否有ningx可执行文件
n2=`ps -C nginx --no-heading|wc -l`
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
service keepalived stop # 停止keepalived
fi
fi
参考配置
global_defs {
notification_email {
test@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_01
#vrrp_strict # 严格遵守vvrp协议,不注释访问不了VIP
}
vrrp_script chk_nginx {
script "/usr/local/src/check_nginx.sh" #检测nginx是否存活脚本
interval 2 #检测脚本执行的间隔,单位:秒
weight 2
}
vrrp_instance VI_1 {
state MASTER # 指定keepalived的角色,MASTER为主,BACKUP为备
interface eth0
virtual_router_id 51 # 虚拟路由编号,主从要一致
priority 150 # 优先级,数值越大,获取处理请求的优先级越高,step建议为50
advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数)
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx # 调用vrrp_script指定的脚本
}
virtual_ipaddress {
10.0.0.17/24 # 定义虚拟ip(VIP),可多设,每行一个
}
}
阅读 3618 · 发布于 2019-08-07
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Spring Boot 配置静态资源获取路径阅读 320
-
Spring Boot 获取所有 SpringMVC Controller 路径阅读 1034
-
JavaScript onbeforeunload 监听页面关闭事件阅读 1941
-
RabbitMQ 用户相关命令阅读 903
-
算法:计算二叉树的高度阅读 1656
-
Vue $refs 操作 DOM 元素阅读 372
-
HTML input 输入框禁止显示输入过的历史数据阅读 1374
-
Android Gradle 去除重复依赖阅读 3318
-
Kubernetes kubectl config 管理配置集群阅读 458
-
Go 操作 MySQL阅读 2257