
Tengo dos puertos abiertos en mis servidores backend, uno para solicitudes https y otro para solicitudes websocket. Los websockets utilizarán http, no https. Me gustaría que mi instancia de haproxy envíe una redirección http 301 a una solicitud de cliente que redirigirá al cliente directamente a un servidor backend. Después de la redirección, el cliente debe comunicarse directamente con el servidor backend, independientemente de que sea una conexión websocket o una conexión https. A continuación se muestra mi configuración. Funciona en el sentido de que redirige el tráfico adecuadamente, pero sólo redirige al primer servidor, nunca al segundo. ¿Por qué no se utiliza round robin para acceder a ambos servidores?
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