我使用https://github.com/dockerfile/haproxy中的默认 HAProxy Docker 映像
不幸的是我无法让它正确地重新加载我的配置。
如果我跑
$ sudo docker exec haprox haproxy -f /etc/haproxy/haproxy.cfg -p '$(</var/run/haproxy.pid)' -st '$(</var/run/haproxy.pid)'
Run Code Online (Sandbox Code Playgroud)
它只是转储帮助文件。如果我跑
$ sudo docker exec haprox 'haproxy -f /etc/haproxy/haproxy.cfg -p $(</var/run/haproxy.pid) -st $(</var/run/haproxy.pid)'
Run Code Online (Sandbox Code Playgroud)
我明白了
2014/12/30 00:03:23 docker-exec: failed to exec: exec: "haproxy -f /etc/haproxy/haproxy.cfg -p $(</var/run/haproxy.pid) -st $(</var/run/haproxy.pid)": stat haproxy -f /etc/haproxy/haproxy.cfg -p $(</var/run/haproxy.pid) -st $(</var/run/haproxy.pid): no such file or directory
Run Code Online (Sandbox Code Playgroud)
嘘。这些都不是我想要的。我可以运行docker exec haprox service haproxy reload- 但这最终会产生几个 haproxy 进程,因此当我通过 unix 套接字连接时,我从中获得一组信息,show stat但从 http 统计页面获得一组完全不同的信息。
我正在尝试对其进行设置,以便可以对遗留软件进行优雅的重新部署,但是它对 Tomcat 会话造成了非常非常糟糕的影响,因此我唯一的选择是保持现有会话处于活动状态并 ping 同一台服务器。
backend legacy
cookie SERVERID insert indirect preserve
server A 123.0.0.123:8080 cookie A check
server B 123.0.0.123:8080 cookie B check
Run Code Online (Sandbox Code Playgroud)
就可以了。我可以调用套接字并运行set weight legacy/A 0,它将耗尽来自服务器 A 的连接。
但是(还记得那个遗留部分吗?)我必须彻底改变我的服务器 A/B 容器并启动新的容器。我已经完成了系统设置,可以很好地生成新配置,但是当我重新加载时......奇怪的事情发生了。
如前所述,它最终会产生几个 haproxy 进程。我从统计页面和 unix 套接字获得不同的信息。我在浏览器中与 socat 通信的进程的 pid 文件似乎也不同。
但最糟糕的是,它将停止 503 的 http 连接 - 并且使用ab来测试将报告一些丢失的连接。这部分不太好。
旧会话必须继续运行,直到旧服务器宕机/cookie 被清除。似乎互联网的其他部分能够做我想做的事情......我在这里做错了什么?
Fer*_*iss 10
您现在可以重新加载配置:
docker kill -s HUP haproxy_container_name
Run Code Online (Sandbox Code Playgroud)
更多信息: https: //hub.docker.com/_/haproxy
我知道这是一个老问题,六年后没有任何帮助!:) 但也许对某人有用!
如果您在容器内运行 ps ,如下所示,您将看到您链接的容器以 pid 1 运行 haproxy,如果不杀死容器就无法杀死它,而且它在前台运行,因此没有 pid 文件。如果您想在容器的后台重新加载运行 haproxy,并使其他进程(例如supervisor)成为主进程。
docker exec -it haproxy ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
haproxy 1 0.0 0.2 28988 4576 ? Ss 02:41 0:00 haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13754 次 |
| 最近记录: |