我的 HAProxy 实例目前甚至没有承受任何严重负载,但偶尔它会开始拒绝接受连接,即使后端服务器正常运行。我在日志中也没有看到任何内容。我的配置中是否遗漏了某些重要内容?
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontend http-in
bind *:80
acl host_staging hdr_end(host) -i staging.example.com
acl host_prod hdr_end(host) -i example.com
acl url_wiki url_beg /wiki
acl url_go url_beg /greenapp
use_backend kumquat if host_staging url_wiki
use_backend kumquat if host_staging url_go
use_backend cumberland if host_staging
default_backend cumberland
backend kumquat
server kumquat kumquat.example.com:8080 maxconn 1000
backend cumberland
server cumberland cumberland.example.com:80 maxconn 1000
答案1
事实证明,我的问题与 HAProxy 无关。我尝试了 Nginx,遇到了同样的问题。然后我尝试运行另一个发行版:CentoOS,即使在我关闭旧机器之后,当 CentOS 启动时,它仍然显示 IP 地址仍在使用中。我还有另一台我忘记关闭的虚拟机,它有相同的 IP 地址。openSUSE 不会检查网络上是否存在具有相同 IP 的另一台机器。它们相互冲突。
答案2
盒子上还有其他东西可能会消耗 TCP 连接,从而导致这种情况吗?您可能需要考虑调整 TCP 限制,以下链接可能有用,也可能没用