根据各种博客,可以使用以下命令正常重启HAproxy:
sudo haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)
为了validation这一点,我build立了一个连续发送消息给haproxy的apache脚本脚本。 理想情况下,每当我重新启动我的服务器的脚本不应该有一个影响的Apache的一个执行。 但是,似乎每当Haproxy重新启动Apache脚本脚本终止和负载平衡器的连接丢失。
这里是我的HaProxyconfiguration文件的细节:
global nbproc 4 log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 #chroot /usr/share/haproxy user haproxy group haproxy daemon pidfile /var/run/haproxy.pid stats socket /home/ubuntu/haproxy.sock #debug #quiet defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen webstats bind 0.0.0.0:1000 stats enable mode http stats uri /lb?stats stats auth anand:aaaaaaaa #stats refresh listen web-farm 0.0.0.0:80 mode http balance roundrobin option httpchk HEAD /index.php HTTP/1.0 server server2.com 1.1.1.1:80 server serve1.com 1.1.1.2:80
〜
请让我知道我在这里错过了什么。
在解决这个问题时,尝试使用“nbproc 1”而不是“nbproc 4”,增加进程的数量很less需要,并且在某些情况下可能会导致问题。
但是,这很可能不是主要问题。 你所描述的场景实际上应该如你所期望的那样工作
HAProxy的热重新configuration实际上是这样工作的:
如果在2之后出现任何错误,则旧的进程将接收到一个SIGTTIN信号,然后继续。
在你的问题中的一些额外的细节可以使解决这个问题更容易