昨天,大约 10 分钟的时间里,我的 haproxy 提供了很多 503 页面(直接来自errorfile 503 /etc/haproxy/errors/503.http
),我不知道为什么。我没有对后端进行健康检查,因此可以肯定这些页面没有被标记为禁用。统计页面没有显示已达到限制(在标记的红色区域中)。
global
maxconn 20000
tune.ssl.default-dh-param 2048
daemon
...
defaults
log global
mode http
timeout http-request 30s
option httplog
option dontlognull
timeout connect 5s
timeout server 120s
timeout client 30s
...
frontend frontend_for_all_sites
maxconn 20000
mode http
bind *:80
option http-buffer-request
timeout http-request 30s
...
use_backend www_backend if acl_hostname_www
use_backend static_backend if acl_hostname_static
backend www_backend
option forwardfor
server www localhost:9090 maxconn 5000
backend static_backend
option forwardfor
server s localhost:9090 maxconn 5000
我接下来应该查看哪里才能弄清楚为什么会发生这种情况?
答案1
你設定了default_backend
嗎?
如果
use_backend www_backend if acl_hostname_www
use_backend static_backend if acl_hostname_static
失败,没有默认后端,因此503
答案2
%ts
这是后端,我设法在添加(termination_state)后指出发生了什么,log-format
以便我可以验证后端确实不可用。