
我的後端伺服器上打開了兩個端口,一個用於 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