gpt4 book ai didi

node.js - HAProxy/Websockets 为什么不断创建新套接字?

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:26 25 4
gpt4 key购买 nike

我正在尝试使用 HAProxy 设置 Websockets,配置如下:http流量 -> haproxy -> varnish -> nginx -> Node ws流量 -> haproxy -> Node

一个子域强制使用 ssl,因此 haproxy 将任何 http 流量重定向到 https。 (以及 ws 到 wss)

一切都按预期工作,除了一个问题,新的套接字不断被创建,而不只是一个(我可以在 Chrome 的调试控制台中看到它们每隔几秒就被创建一次)

我用Varnish做Websockets管道时没有出现这个问题。

我该如何解决这个问题?

global
daemon

defaults
mode http

frontend insecure
# HTTP
bind :80

timeout client 5000

# acl
acl is_console hdr_end(host) -i console.mydomain.com
acl is_client hdr_end(host) -i www.mydomain.com
acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws

# Redirect all HTTP traffic to HTTPS
redirect location https://console.mydomain.com if is_console

use_backend node_console if is_console is_websocket
use_backend node_client if is_client is_websocket
default_backend varnish

frontend secure
# HTTPS
bind :443 ssl crt /etc/ssl/console.mydomain.com.pem

timeout client 5000

# acl
acl is_console hdr_end(host) -i console.mydomain.com
acl is_client hdr_end(host) -i www.mydomain.com
acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws

use_backend dealspot_console if is_console is_websocket
use_backend dealspot_client if is_client is_websocket
default_backend varnish

backend varnish
balance leastconn
option forwardfor
timeout server 5000
timeout connect 4000
server varnish1 127.0.0.1:6081

backend node_client
balance leastconn
option forwardfor
timeout queue 5000
timeout server 5000
timeout connect 5000
server client_node1 127.0.0.1:3000

backend node_console
balance leastconn
option forwardfor
timeout queue 5000
timeout server 5000
timeout connect 5000
server console_node1 127.0.0.1:3001

最佳答案

我设法通过在后端将“隧道超时”设置为一天来解决这个问题

关于node.js - HAProxy/Websockets 为什么不断创建新套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430303/

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