我想在部署应用程序期间远程控制我的 HAproxy。例如,在停止“app-server1”上的应用程序之前,我想指示 HA 代理禁用后端服务器“app-server1”。当应用程序再次运行时,我想发出启用命令。
通过“stats socket ...”,我创建了一个 UNIX 套接字或一个 TCP 套接字。对于远程访问,它必须是 TCP 套接字。然而,这显然会带来一个我想要缓解的漏洞。
我可以通过客户端 IP 列表、SSL 或其他方式限制对管理套接字的访问吗?
由于我在搜索时找到的有关该主题的信息量有限,我想知道是否还有另一种适合我的用例的推荐远程操作方式?
我确实使用脚本来实现此目的,但不允许脚本通过 SSH 访问运行 HA-proxy 的服务器,这不是一个选项。
定义一个指向本地主机上的统计套接字的后端服务器。然后将统计套接字设置为仅绑定在 127.0.0.1 上。最后,将所需的 ACL 添加到前端定义中。
统计套接字现在仅限于接受来自本地主机的连接,而您的前端代理则负责远程客户端。
global
daemon
stats socket 127.0.0.1:1999
...
frontend stats-frontend
bind *:2000
default_backend stats-backend
acl ...
acl ...
backend stats-backend
mode tcp
server stats-localhost localhost:1999
Run Code Online (Sandbox Code Playgroud)