Apache WebSocket代理已删除连接

i34xakig  于 2022-11-11  发布在  Apache
关注(0)|答案(2)|浏览(215)

我正在尝试通过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
woobm2wo

woobm2wo1#

我遇到了同样的问题,通过将ProxyWebsocketIdleTimeout的值配置为300(秒),解决了这个问题。https://httpd.apache.org/docs/trunk/mod/mod_proxy_wstunnel.html
您的套接字应该有一个keepalive消息。我的套接字每隔30秒就有一个keepalive消息,但是连接断开了,因为我的ProxyWebsocketIdleTimeout指令明显少于30秒。我将其设置为300秒(5分钟),这样问题就解决了。

5t7ly7z5

5t7ly7z52#

我也遇到了同样的问题,似乎Apache要处理websockets,你需要使用a2enmod proxy_wstunnel安装代理websockets模块。
作为先决条件,还应使用以下命令安装proxy和proxy_http模块:a2enmod proxya2enmod proxy_http中的一个或多个。

相关问题