2012-07-22 6 views
3

Я пытаюсь масштабировать приложение socket.io и пытаюсь запустить несколько процессов на моем сервере.Несколько процессов socket.io используют один и тот же порт?

Я использую REDIS магазин вместо магазина памяти, как описано здесь: https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO

Мой сервер прослушивает порт 8090: вар Io = требуется ('/ USR/местные/Библиотека/node_modules/Socket.io'). слушать (8090);

Когда я начала второго процесса, я получаю адрес в ошибке использования: предупреждают - ошибка поднятый: Ошибка: слушать EADDRINUSE

Что лучший способ справиться с этой проблемой? Порт для каждого процесса и балансировщик нагрузки, чтобы различать их?

Или есть лучшее решение?

ответ

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); 

Более подробные сведения о конкретной установке можно найти по этому вопросу: How to use vhosts alongside node-http-proxy?

Смежные вопросы