在此处考虑我的HAProxy
配置:
global
chroot /var/lib/haproxy
user haproxy
group haproxy
defaults
timeout connect 10s
timeout client 50s
timeout server 50s
frontend fe_https_tomcat
mode tcp
bind *:443 ssl crt /path/cert.pem alpn h2,http/1.1
default_backend be_tomcat
backend be_tomcat
mode tcp
server localhost localhost:8081 check
我遇到的问题是WebSocket似乎没有通过。我的猜测是在tcp模式下,一切都会通过。看起来它没有......: - )
当WebSocket连接建立时,服务器响应错误403
。
请注意,使用以下http模式设置,WebSocket才能正常工作:
frontend fe_http_8080
mode http
bind *:8080
default_backend be_tomcat_8080
backend be_tomcat_8080
mode http
server localhost localhost:8081 check
请注意,我需要tcp-mode才能使http / 2工作。
答案 0 :(得分:0)
该问题最后与HAProxy无关,而是与Spring中的WebSocket设置有关。 这修好了它:
-registry.addHandler(webSocketHandler, "/ws");
+registry.addHandler(webSocketHandler, "/ws").setAllowedOrigins("*");