多个socket.io进程共享同一个端口?

3
我试图扩展我的socket.io应用程序,并尝试在服务器上运行多个进程。我使用redis存储代替内存存储,如此处所述:https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO。我的服务器侦听8090端口:var io = require('/usr/local/lib/node_modules/socket.io').listen(8090);。当我启动第二个进程时,我会收到地址正在使用的错误:warn - error raised: Error: listen EADDRINUSE。如何处理这个问题?为每个进程分配一个端口并使用负载均衡器来区分它们?还是有更好的解决方案?
1个回答

6

我使用node-http-proxy来实现此功能,并根据请求的URL将流量路由到内部端口。以下是我用于路由请求的非常简化的示例。

var httpProxy = require('http-proxy');

var httpOptions = {
    router: {
        'domain1.com/foo': 'localhost:3001',
        'domain1.com/bar': 'localhost:3002',
        'domain2.com/baz': 'localhost:3003',
    } 
};

var httpServer = httpProxy.createServer(httpOptions);
httpServer.listen(80);

更多有关我的特定设置的详细信息可以在这个问题中找到:如何在node-http-proxy旁边使用虚拟主机?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接