是否可以不在 Haproxy 配置中定义后端,以便为每个 TCP 连接创建代理?因此,如果我尝试通过 HAproxy 从主机 A(sftp、ssh、smtp) 进行连接,它将始终到达目的地。
答案1
我不知道在 HAProxy 中“代理”所有 TCP 连接的方法。
您应该设置一个前端并将其绑定到多个端口,例如:
bind 0.0.0.0:21
bind 0.0.0.0:22
bind 0.0.0.0:25
然后,根据端口,为每个感兴趣的端口/服务设置一个 ACL 和该 ACL 的后端:
acl is_ftp dst_port 21
acl is_ssh dst_port 22
acl is_smtp dst_port 25
use_backend ssh if is_ftp
use_backend ftp if is_ssh
use_backend smtp if is_smtp
答案2
也许我误解了这个问题,但如果你没有定义前端和后端的端口 - 那么所有流量都将停留在其当前端口上,即 WEB 80 -> 80 和 SMTP 25 -> 25
listen L7_TCP_ALLPORTS
bind 10.0.0.20
mode tcp
balance leastconn
server RS001 192.168.1.21 check port 80
注意:您需要指定检查端口(否则它不会知道)。