1
我在服務器上運行Apache 2.4,並設置了一個子域來處理我的Node.JS Web應用程序,它也使用Websocket。在WebSocket握手過程中出現錯誤:缺少'升級'標題(Apache 2.4 + mod_proxy_wstunnel)
我的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/
- 他們得到服務的HTML從我的Node.js應用程序(使用快遞)和HTML有一個JavaScript的部分通信返回與node.js應用程序通過websocket 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
是這是由於工作代理「切斷」某些東西?有沒有機會建立一個「防彈」隧道來克服這種情況?