![](/img/trans.png)
[英]Connecting to PHP using Apache's mod_proxy_wstunnel without using 3rd Party APIs
[英]Error during WebSocket handshake: 'Upgrade' header is missing (Apache 2.4 + mod_proxy_wstunnel)
我在服务器上运行了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与node.js应用程序进行通信ws.mysite.io/ws/
是“隧道”到ws://1.2.3.5:6789/
。
我得到一个家庭无线网络的情况 - 一切正常。 没问题。
在工作中,我们确实有防火墙,代理......但我不知道确切的限制或阻止,但是当我打开http://ws.mysite.io/
我会进入Chrome控制台:
WebSocket connection to 'ws://ws.mysite.io/ws/' failed: Error during WebSocket handshake: 'Upgrade' header is missing
这是由于工作代理“削减”了一些东西吗? 有没有机会建立一个“防弹”隧道来克服这样的事情?
据我所知,你不需要这一行:
ProxyPassReverse / ws / ws://1.2.3.5:6789 /
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.