haproxy服务启动命令_haproxy动态配置API

袁弘化
2023-12-01

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

clear acl

del acl [|#]

get acl

show acl []

frontend管理前端管理,可以关闭前端服务,当系统维护时可以使用此方法关闭外部请求,避免外部请求生成错误数据或者其他脏数据问题。disable frontend

enable frontend

shutdown frontend

show backend

set maxconn frontend

通过disable和enable方法还可以管理backend后端的health/server/agentdisable health /

disable server /

disable agent /

disable是临时暂停,如果需要彻底停止需要使用shutdown关闭服务。

server 管理show servers state []

set server / addr

set server / agent [ up | down ]

set server / health [ up | stopping | down ]

set server / state [ ready | drain | maint ]

set server / weight [%]

权重管理get weight /

set server / weight [%]

 类似资料: