WebSocket连接失败:在接收到握手响应之前关闭了连接

3
我正在尝试实现guacamole(通过浏览器远程连接到PC),但是当我尝试通过互联网连接时,我会遇到以下错误:
“Failed to load resource: the server responded with a status of 429 (Too Many Requests)”
以及
“app.js?v=0.9.13-incubating:129 WebSocket connection to 'wss://remote.company.com/guacamole/websocket-tunnel?token=E8577744842BFA261785C52CAA309CBC6FC5DBE262E7508FF6F49C1821AB6F58&GUAC_DATA_SOURCE=mysql&GUAC_ID=1&GUAC_TYPE=c&GUAC_WIDTH=917&GUAC_HEIGHT=922&GUAC_DPI=110&GUAC_AUDIO=audio%2FL8&GUAC_AUDIO=audio%2FL16&GUAC_IMAGE=image%2Fjpeg&GUAC_IMAGE=image%2Fpng&GUAC_IMAGE=image%2Fwebp' failed: Connection closed before receiving a handshake response”
因此,无法建立websocket连接,一切都通过HTTP进行,这意味着性能较慢。
在我看来,这是由于我设置的额外代理导致的,以便从外部访问该站点。
以下是设置:
URL:https://remote.company.com 端口443转发到防火墙:从remote.company.com代理到<IP ADDRESS guacamole server:8080>在Apache vhost中,我有以下代理以建立websocket隧道:
<Location /guacamole/>
    Order allow,deny
    Allow from all
    ProxyPass http://localhost:8080/guacamole/ flushpackets=on
    ProxyPassReverse http://localhost:8080/guacamole/
</Location>

<Location /guacamole/websocket-tunnel>
    Order allow,deny
    Allow from all
    ProxyPass ws://localhost:8080/guacamole/websocket-tunnel
    ProxyPassReverse ws://localhost:8080/guacamole/websocket-tunnel
</Location>

根据文档所述, 我需要更改什么才能建立websocket隧道?

1个回答

0

根据您的配置,一切似乎都正常。请检查您的配置是否包括以下内容:

  • Apache >= 2.4.5
  • 启用 mod_proxy_wstunnel 模块。

这是在我的电脑上的配置示例:LoadModule proxy_wstunnel_module libexec/apache2/mod_proxy_wstunnel.so


该模块已启用,Apache版本也正常。问题最终被证实是代理服务器引起的。这是一个Junos SSL盒子,不支持ws:\协议。因此,我使用了另一个端口(8443),并将其转发到相关的服务器。现在,WebSocket隧道运行得非常好。无论如何,还是要感谢您。 - wouter205

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接