前言:
我们在使用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代理的这个服务流量恢复正常代理,
标签:haproxy,stats,排干,代理,192.168,action,8080,置维 From: https://www.cnblogs.com/putaoo/p/17548344.html