gpt4 book ai didi

websocket - 在 Rancher 的 LoadBalancer 中删除了 WebSocket 连接

转载 作者:行者123 更新时间:2023-12-03 08:11:37 25 4
gpt4 key购买 nike

我从浏览器到 Rancher 中的服务有简单的 WebSocket 连接。
我尝试以两种方式连接到服务:

1)直接到服务:

browser ---> service

2) 通过 Rancher 的负载均衡器:
browser ---> Load Balancer ---> service

在第一种情况下,一切都很好:建立连接并通过它发送消息。

在第二种情况下,连接在约 50 秒后断开。消息通过连接正确地在两个方向上发送。

是什么原因?

编辑:我在 ws 和 wss 协议(protocol)上进行了测试。在这两种情况下,都有相同的问题。

最佳答案

Rancher 负载均衡器内部使用 HAProxy,可以根据您的需要进行定制。

这是 websockets 的示例 HAProxy 配置:

global
maxconn 4096
ssl-server-verify none

defaults
mode http
balance roundrobin
option redispatch
option forwardfor

timeout connect 5s
timeout queue 5s
timeout client 36000s
timeout server 36000s

frontend http-in
mode http
bind *:443 ssl crt /etc/haproxy/certificate.pem
default_backend rancher_servers

# Add headers for SSL offloading
http-request set-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Forwarded-Ssl on if { ssl_fc }

acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws
use_backend rancher_servers if is_websocket

backend rancher_servers
server websrv1 <rancher_server_1_IP>:8080 weight 1 maxconn 1024
server websrv2 <rancher_server_2_IP>:8080 weight 1 maxconn 1024
server websrv3 <rancher_server_3_IP>:8080 weight 1 maxconn 1024

引用: https://rancher.com/docs/rancher/v1.6/en/installing-rancher/installing-server/basic-ssl-config/#example-haproxy-configuration

LB 的“Custom haproxy.cfg”部分只能使用相关配置。
看截图:
enter image description here

这是 Rancher 中自定义 haproxy 的更多文档的链接: https://rancher.com/docs/rancher/v1.6/en/cattle/adding-load-balancers/#custom-haproxy-configuration

关于websocket - 在 Rancher 的 LoadBalancer 中删除了 WebSocket 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51360366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com