Apache Websocket 代理断开连接

use*_*515 6 apache proxy mod-proxy proxypass websocket

我正在尝试通过 Apache 2.4.7(在 Ubuntu 上运行)代理 websocket。连接已正确建立,但如果浏览器或服务器在一段时间内(几分钟)没有相互发送数据,则来自服务器的新消息不会传递到浏览器。
此外,浏览器或服务器上的服务似乎也没有意识到连接在某种程度上被破坏了(它们根本不会抛出任何错误)。

如何配置服务器以避免此问题?

这是我的配置:

ProxyRequests Off
ProxyPass /somepath ws://127.0.0.1:6080/ retry=60 keepalive=On timeout=9999 ttl=9999
ProxyPassReverse /somepath ws://127.0.0.1:6080/ retry=60
Run Code Online (Sandbox Code Playgroud)

Arb*_*ter 2

我遇到了同样的问题,并通过配置 来解决它ProxyWebsocketIdleTimeout,其值为 300(秒)。这里有文档:https ://httpd.apache.org/docs/trunk/mod/mod_proxy_wstunnel.html

您的套接字应该有一条 keepalive 消息。我的每 30 秒执行一次,但连接正在断开,因为我的 ProxyWebsocketIdleTimeout 指令显然少于 30 秒。为了达到良好的效果,我将其设置为 300 秒(5 分钟),问题得到了解决。