在 ha-proxy 中,我将流量分离到两个前端端口并创建了两个后端。端口 1 流量被定向到两个后端,端口 2 流量被定向到两个后端 2。我想创建一个智能负载平衡器,用于检测后端 2 是否忙于端口 2 查询,它会自动将端口 1 的流量发送到后端 1。
global
log /dev/log local0
log /dev/log local1 notice
maxconn 3000
user haproxy
group haproxy
daemon
stats socket /etc/haproxy/haproxysock level admin
# external-check
defaults
log global
timeout connect 60000
timeout client 6000000
timeout server 6000000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
#########################
frontend test_1
mode tcp
bind 0.0.0.0:74474
acl dp1 dst_port 34475
use_backend test_two if dp1
default_backend test_one
backend test_one
balance leastconn
mode tcp
# option external-check
option allbackups
server server-1 192.128.22.1:25554 check
server server-2 10.128.66.53:25554 check
backend test_two
balance leastconn
mode tcp
# option external-check
option allbackups
server server-1 192.168.22.1:25554 check
答案1
前端绑定到端口 74474,并具有基于端口 34475 的 acl,该 acl 永远不会被命中,因为该前端未绑定到它。