首页 > 解决方案 > Websocket 连接失败:在收到握手响应之前连接已关闭

问题描述

我正在尝试实现鳄梨调味酱(通过浏览器远程连接到电脑),但是当尝试通过互联网连接时,出现以下错误:

加载资源失败:服务器响应状态为 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' 失败:在收到握手响应之前连接已关闭

因此无法建立 websocket 连接,一切都通过 HTTP,这意味着性能下降。

在我看来,这是由我为了从外部访问该站点而设置的额外代理引起的。

这是设置:

网址: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 隧道?

标签: apachewebsocketproxyreverse-proxy

解决方案


正如我在您的配置中看到的,一切似乎都很好。请检查您的配置是否有:

  • 阿帕奇> = 2.4.5
  • 启用mod_proxy_wstunnel

这就是我的电脑中的显示方式LoadModule proxy_wstunnel_module libexec/apache2/mod_proxy_wstunnel.so


推荐阅读