服务器动态下线
######haproxy动态下线需要用到socat工具
socat工具:
对服务器动态权重和其它状态可以利用 socat工具进行调整,Socat 是 Linux 下的一个多功能的网络工具,名字来由是Socket CAT,相当于netCAT的增强版.Socat 的主要特点就是在两个数据流之间建立双向通道,且支持众多协议和链接方式。如 IP、TCP、 UDP、IPv6、Socket文件等。
更改线上的服务器的权重为0,使haproxy不往该服务器调度,从而达到下线的效果
注:1、只支持动态算法下使用
2、每次只能修改一个单进程(sock文件)
######ha1安装socat工具
[root@ha1 ~]#yum install -y socat
######修改ha1上的haproxy配置socket文件。
[root@ha1 ~]#vim /etc/haproxy/haproxy.cfg
global
...
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin process 1
...
######重启haproxy服务
[root@ha1 ~]#systemctl restart haproxy
######编写动态上下线服务器脚本
[root@ha1 ~]#vim haproxy_host_up_down.sh
#!/bin/bash
#================================================================
# Copyright (C) 2022 IEucd Inc. All rights reserved.
#
# 文件名称:haproxy_host_up_down.sh
# 创 建 者:TanLiang
# 创建日期:2022年08月27日
# 描 述:This is a test file
#
#================================================================
. /etc/init.d/functions
case $1 in
up)
echo "set weight httpd_80/$2 1" | socat stdio
/var/lib/haproxy/haproxy.sock
[ $? -eq 0 ] && action "$2 is up"
;;
down)
echo "set weight httpd_80/$2 0" | socat stdio /var/lib/haproxy/haproxy.sock
[ $? -eq 0 ] && action "$2 is down"
;;
*)
echo "Usage: `basename $0` up|down IP"
;;
esac
######使用脚本动态下线web1
[root@ha1 ~]#bash haproxy_host_up_down.sh down web1
web1 is down [ OK ]
######访问nginx验证
[root@client ~]#curl 10.0.0.150
web2.tan.com
[root@client ~]#curl 10.0.0.150
web2.tan.com
[root@client ~]#curl 10.0.0.150
web2.tan.com
[root@client ~]#curl 10.0.0.150
web2.tan.com
######使用脚本上线web1,下线web2
[root@ha1 ~]#bash haproxy_host_up_down.sh up web1
web1 is up [ OK ]
[root@ha1 ~]#bash haproxy_host_up_down.sh down web2
web2 is down [ OK ]
######client访问haproxy验证。
[root@client ~]#while :;do curl 10.0.0.150 && sleep 1;done
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web2.tan.com
web1.tan.com
web2.tan.com
web1.tan.com
web2.tan.com
web1.tan.com
web2.tan.com
web1.tan.com
web1.tan.com
web1.tan.com
web1.tan.com
web1.tan.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具