0
我有一個運行在我的服務器上的FeathersJS構建的節點應用程序,我希望它在apache後面,我試圖在apache中使用mod_proxy模塊來完成此操作,但我遇到了問題。如何通過Apache配置ProxyPass websocket請求節點應用程序?
這是我的Apache mod_proxy的部分是什麼樣子:
<IfModule mod_proxy.c>
ProxyRequests off
ProxyPass /ws/api/phone/ ws://localhost:3030
ProxyPassReverse /ws/api/phone/ ws://localhost:3030
ProxyPass /api/phone/ http://localhost:3030/
ProxyPassReverse /api/phone/ http://localhost:3030/
</IfModule>
我已經把我的客戶端套接字配置如下:
var socket = io('/', { path: '/ws/api/phone/socket.io/', transports: ['websocket']});
當我嘗試打開使用的應用程序,我得到以下錯誤:
WebSocket connection to 'ws://local.mysite.com/ws/api/phone/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 500
我啓用了Apache日誌記錄,這就是錯誤的樣子:
127.0.0.1 - - [22/Oct/2016:14:48:32 -0400] "GET /ws/api/phone/socket.io/?EIO=3&transport=websocket HTTP/1.1" 500 540 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"
如果我運行通過本地主機的一切,它的作品完美,沒有任何問題,所以這顯然是與ProxyPass僞問題。任何幫助將不勝感激,或者如果有另一種方式,我可以完成將節點應用程序放在apache後面而不使用ProxyPass,我很樂意聽到任何其他解決方案。
在此先感謝。
你還記得任何事情得到錯誤:'WebSocket連接到URL失敗:WebSocket握手期間出錯:無效的狀態行'? –
這已經是一年,時間很短。我不確定實際的錯誤是什麼。它「只是不會連接」。你有沒有嘗試過以上? – j2L4e