6

在 Ubuntu 15.04 上使用 Apache 我正在尝试从 URL 中有效删除端口 3000 并将路径更改为http://example.com/{app}/socket.io...

使用 ProxyPass 和 ProxyPassReverse 我已经有效地从 URL 中删除了端口,并相应地更新了服务器和客户端以更改路径。

虚拟主机更改:

ProxyPass /path/ http://example.com:3000/path/
ProxyPassReverse /path/ http://example.com:3000/path/

我所做的服务器端更改如下:

var io = require('socket.io')(http, {path: '/path/socket.io' });
app.get('/path/', function(req, res){

我所做的客户端更改如下:

var socket = io({path: '/path/'});

一切似乎都很顺利,直到我打开控制台日志并GET在使用 chrome 时看到大量请求。这肯定会杀死我的带宽,我想我以某种方式设法不正确地收听套接字,从而导致大量GET请求。

有人可以就我可能做错的事情提供一些指导吗?

4

1 回答 1

1

您会看到大量请求,因为 socket.io 正在回退到长轮询,因为 Apache 没有代理您需要启用此功能的 websocket 连接

mod_proxy_wstunnel 

然后加

ProxyPass "/path/socker.io"  "ws://localhost:3000/"
于 2016-03-17T16:50:51.043 回答