![haproxy 无法在两台服务器之间实现负载平衡](https://linux22.com/image/792258/haproxy%20%E6%97%A0%E6%B3%95%E5%9C%A8%E4%B8%A4%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E5%AE%9E%E7%8E%B0%E8%B4%9F%E8%BD%BD%E5%B9%B3%E8%A1%A1.png)
我的后端服务器上有两个端口打开,一个用于 https 请求,另一个用于 websocket 请求。websocket 将使用 http,而不是 https。我希望我的 haproxy 实例向客户端请求发送 http 301 重定向,该请求会将客户端直接重定向到后端服务器。重定向后,客户端应该直接与后端服务器通信,无论是 websocket 连接还是 https 连接。以下是我的配置。它可以适当地重定向流量,但它只会重定向到第一台服务器,而不会重定向到第二台服务器。为什么不使用循环来访问两台服务器?
defaults
mode http
timeout connect 5000ms
timeout client 3000ms
timeout server 3000ms
timeout tunnel 0
frontend server-frontend
bind LB_IP:443
http-request redirect code 301 prefix https
default_backend server-backend
backend server-backend
balance roundrobin
server s1 SERVER1_IP:8443
server s2 SERVER2_IP:8443
frontend websocket-frontend
bind LB_IP:80
http-request redirect code 301 prefix http
default_backend websocket-backend
backend websocket-backend
balance roundrobin
server ws1 SERVER1_IP:8080
server ws2 SERVER2_IP:8080