haproxy 动静配置 API
运行时 API 是为了帮忙 HAPROXY 创立残缺的配置和统计信息,所有命令将在运行时立刻失效。
如何应用运行时 API 呢?
有两种形式,能够应用 TCP
和Unix 套接字
进行拜访,咱们能够通过上面的配置来启用运行时 API:
global
stats socket ipv4@127.0.0.1:9999 level admin
stats socket /var/lib/haproxy/stats mode 666 level admin
stats timeout 2m
如果未应用 HAProxy Enterprise
,则装置中的默认 Unix 套接字名称可能名为/var/run/haproxy.sock
或者 /var/lib/haproxy/stats
,而不是/var/run/hapee-lb.sock
。
而在启动了 master-worker
模式下,可能会绑定一个 治理 socket
地址,通常是 /var/run/haproxy-master.sock
,咱们能够通过这个地址治理haproxy
的服务,例如从新加载配置文件。
例如,以后零碎运行 haproxy
的命令为:
╰─ ps -ef |grep haproxy | grep -v grep
haproxy 1452 20936 5 10:47 ? 00:00:01 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock -sf 20937
root 20936 1 0 9 月 09 ? 00:00:11 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock -sf 20937
运行 API 的命令行应用办法
咱们须要装置一个
socat
工具,接下来会应用此命令来操作运行时 API。
当然咱们也能够应用nc
命令替换socat
接下来介绍的所有命令能够在 Unix Socket commands 这里找到,想要理解更多能够本人浏览一下。
上面只介绍几个简略命令
查看帮忙 help
信息
上面是应用 socat
命令连贯 Unix 套接字
和tcp
地址的办法:
$ sudo socat readline /run/haproxy-master.sock
$ socat readline tcp4-connect:127.0.0.1:9999
> help
上面是应用 nc
命令连贯 Unix 套接字
和tcp
地址的办法:
$ sudo nc -U /run/haproxy-master.sock
$ nc 127.0.0.1 9999
> prompt
> help
当然能够通过管道形式传递参数:
$ echo "help" | socat stdio /var/run/hapee-lb.sock
$ echo "help" | socat stdio tcp4-connect:127.0.0.1:9999
查看统计信息stat
执行的命令
$ socat readline tcp4-connect:127.0.0.1:9999
> show stat
ACL 规定治理
add acl <acl> <pattern>
clear acl <acl>
del acl <acl> [<key>|#<ref>]
get acl <acl> <value>
show acl [<acl>]
frontend
治理
前端治理,能够敞开前端服务,当系统维护时能够应用此办法敞开内部申请,防止内部申请生成谬误数据或者其余脏数据问题。
disable frontend <frontend>
enable frontend <frontend>
shutdown frontend <frontend>
show backend
set maxconn frontend <frontend> <value>
通过 disable
和enable
办法还能够治理 backend
后端的health
/server
/agent
disable health <backend>/<server>
disable server <backend>/<server>
disable agent <backend>/<server>
disable
是长期暂停,如果须要彻底进行须要应用 shutdown
敞开服务。
server 治理
show servers state [<backend>]
set server <backend>/<server> addr <ip4 or ip6 address>
set server <backend>/<server> agent [up | down]
set server <backend>/<server> health [up | stopping | down]
set server <backend>/<server> state [ready | drain | maint]
set server <backend>/<server> weight <weight>[%]
权重治理
get weight <backend>/<server>
set server <backend>/<server> weight <weight>[%]