haproxy动静配置API

运行时API是为了帮忙HAPROXY创立残缺的配置和统计信息,所有命令将在运行时立刻失效。

如何应用运行时API呢?

有两种形式,能够应用TCPUnix套接字进行拜访,咱们能够通过上面的配置来启用运行时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 grephaproxy   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 20937root     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 backendset maxconn frontend <frontend> <value>

通过disableenable办法还能够治理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>[%]