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 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>
通过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>[%]