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