ogb*_*jnr -1 proxy load-balancing amazon-web-services amazon-elb websocket
我知道有一个 ALB 和 NLB 选项可与 websocket 一起使用。我不明白为什么带有 HTTP 协议的经典 ELB 不适用于 websocket 连接,尽管在实例中 Nginx 配置为添加连接和升级标头。一旦我将其切换到 TCP 协议,它就可以工作了。你能解释一下当中间有 HTTP 代理时这个协议到底是如何工作的吗?
它仍然使用相同的 TCP,一旦客户端到达服务器并且 Nginx 添加了升级标头,带有切换协议消息的服务器响应应该到达客户端,然后它们只使用已建立的 HTTP 连接的 TCP。它丢弃 ELB 上的此连接、响应缓冲或只是丢弃所有非 HTTP 流量的原因是什么?
所以Nginx发送到ELB
HTTP/1.1 101 Switching Protocols
Server: nginx/1.13.1
Date: Sat, 21 Mar 2020 07:53:38 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: PozdkhgL/Zdkgh3kwu0KkACFCt0=
Run Code Online (Sandbox Code Playgroud)
但是ELB从来没有将其返回给客户端,并且请求超时。