在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/'});
在我打开控制台日志并使用chrome时看到过多的GET
请求之前,所有内容似乎都运行得很顺利。这肯定会杀死我的带宽,我想我设法不能正确地听套接字导致大量的GET
请求。
有人可能会对我可能做错的事情提供一些指导吗?
答案 0 :(得分:0)
您正在看到大量请求,因为socket.io正在回退到长轮询,因为Apache没有代理您需要启用此功能的websocket连接
mod_proxy_wstunnel
然后添加
ProxyPass "/path/socker.io" "ws://localhost:3000/"