haproxy代理排干、置维以及就绪操作

发布时间 2023-07-12 17:42:35作者: ZANAN

前言:

我们在使用haproxy作为代理流量的时候,如果后端服务需要进行维护下线,那么就可以使用haproxy自带的status模块来完成。以下为具体示例。

一、haproxy开启status模块

1、在haproxy.cfg的defaults区域开启以下参数

1 listen stats
2     bind 0.0.0.0:8848          #表示haproxy监听的status页面的地址及端口
3     stats enable               #表示开启状态统计模块
4     stats uri /haproxy_stats   #状态模块的具体url
5     stats realm Haproxy\ Statistics
6     stats auth admin:ws123456  #状态模块页面访问的认证
7     stats   admin if TRUE

 2、以上配置完成后,就可以访问haproxy的状态统计页面了

http://192.168.70.11:8848/haproxy_stats

 3、创建一个示例的haproxy代理记录

分别添加 frontend、以及 backend 的配置

 1 frontend website     #前端代理名称
 2    maxconn 20000
 3    bind :88          #haproxy代理监听的端口
 4    default_backend web_servers  #后端代理名称
 5 
 6 
 7 
 8 backend web_servers            #后端代理名称
 9    balance roundrobin
10    option      allbackups
11    server 192.168.70.12:8080 192.168.70.12:8080 check   #一定要注意这里的后端实际的ip+端口要写两次 如示例,不然后续的操作不成功

以上的配置表示:当访问haproxy(192.168.70.11)的88端口时,就会代理到192.168.70.12:8080的服务

二、使用curl的方式进行代理排干、置维以及就绪操作

设置排干

curl -i -u admin:ws123456 -d "s=192.168.70.12:8080&b=web_servers&action=drain" http://192.168.70.11:8848/haproxy_stats
#分别指定账号名 密码 以及后端服务的地址、后端服务的名称、以及执行的动作、最后跟上haproxy的状态统计url
action=drain 代表排干

 执行完,查看页面变化。这时通过haproxy代理的这个服务流量无法打上来,已建立连接的除外

 设置维护

1 curl -i -u admin:ws123456 -d "s=192.168.70.12:8080&b=web_servers&action=maint" http://192.168.70.11:8848/haproxy_stats
2 #分别指定账号名 密码 以及后端服务的地址、后端服务的名称、以及执行的动作、最后跟上haproxy的状态统计url action=maint 代表维护

 执行完,查看页面变化。这时通过haproxy代理的这个服务流量全部无法打上来,

 设置就绪

1  curl -i -u admin:ws123456 -d "s=192.168.70.12:8080&b=web_servers&action=ready" http://192.168.70.11:8848/haproxy_stats
2  #分别指定账号名 密码 以及后端服务的地址、后端服务的名称、以及执行的动作、最后跟上haproxy的状态统计url action=ready 代表就绪

 执行完,查看页面变化。这时通过haproxy代理的这个服务流量恢复正常代理,