根据各种博客,可以使用以下命令优雅地重新启动HAproxy:
sudo haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)
为了验证这一点,我设置了一个apache脚本,该脚本连续地向had发送消息。理想情况下,每当我重新启动服务器时,脚本都不会对apache集群的运行产生影响。但是,似乎每当重新启动that时,apache脚本就会终止,而与负载均衡器的连接就会丢失。
下面是我的HaProxy配置文件的详细信息:
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~
请让我知道我在这里错过了什么。
发布于 2011-12-16 09:22:49
在排除此问题时,尝试使用"nbproc 1“而不是"nbproc 4",很少需要增加进程数量,并且在某些情况下可能会导致问题。
然而,这很可能不是主要问题。您所描述的场景实际上应该如您所期望的那样工作。
HAProxy的热重构实际上是这样工作的:
如果在2之后出现任何问题,则旧进程将接收SIGTTIN信号,并继续进行。
您的问题中的一些其他细节可以使解决此问题更容易:
https://serverfault.com/questions/330837
复制相似问题