WebSocket握手期间出错:'升级'标头丢失(Apache 2.4 + mod_proxy_wstunnel)

时间:2016-08-22 14:53:10

标签: javascript node.js apache websocket

我在服务器上运行了Apache 2.4,并设置了一个子域来处理我的Node.JS Web应用程序,该应用程序也使用了websockets。

我的Apache站点配置是:

<VirtualHost *:80> 
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName ws.mysite.io
  ProxyPass /ws/ ws://1.2.3.5:6789/
  ProxyPassReverse /ws/ ws://1.2.3.5:6789/
  ProxyPass / http://1.2.3.5:6789/
  ProxyPassReverse / http://1.2.3.5:6789/
</VirtualHost> 

因此,当用户来到http://ws.mysite.io/时,他们会从我的node.js应用程序(使用快递)获得html,并且html有一个javascript部分通过websocket on {{与node.js应用程序进行通信1}}这是&#34;隧道&#34;到ws.mysite.io/ws/

我遇到家庭无线网络的情况 - 一切正常。没问题。

在工作中,我们确实有防火墙,代理......但我不知道确切的限制或阻止,但是当我打开ws://1.2.3.5:6789/时,我会进入Chrome控制台:

http://ws.mysite.io/

这是由于工作代理&#34;切割&#34;一些东西?有没有机会设置防弹&#34;隧道,以克服这样的事情?

1 个答案:

答案 0 :(得分:0)

据我所知,你不需要这一行:

ProxyPassReverse / ws / ws://1.2.3.5:6789 /