我的后端服务器上有两个端口打开,一个用于 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