2016-08-22 69 views
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 

是這是由於工作代理「切斷」某些東西?有沒有機會建立一個「防彈」隧道來克服這種情況?

回答

0

據我所知,你不需要這行:

ProxyPassReverse/WS/WS://1.2.3.5:6789/

相關問題