2013-11-25 2 views
0

Я запускаю сервер Node.js, который теперь получает больше нагрузки, и мне нужно начать его выполнение на нескольких ядрах, так как Node.js является однопоточным и может запускаться только на одной.Nginx - Маршрутизация, Capabililties с Node.js

Это простое решение, учитывая модуль кластера Node.js и тонны пакетов NPM для этого самого.

У меня возникла проблема в том, что мне нужны сеансы браузера, чтобы сохранить тот же рабочий Node.js после первого запроса. Это связано с тем, что я храню данные аутентификации и т. Д. В рабочем процессе одного узла и не хочу открывать банку червей обмена сообщениями между рабочими процессами и т. Д. И т. Д.

Мои браузеры хранят cookie идентификатора сеанса после аутентификации, и я хочу, чтобы система перенаправляла запросы своему правильному работнику на основе их cookie сеанса.

Nginx выглядит многообещающим, но я ничего не знаю об этом, и в то время как я положу работу в нее, я хотел бы знать, прежде чем тратить часы погружения в него, если он способен маршрутизировать в Node.js рабочих процессов на основе произвольных данных из заголовка запроса, например, cookie сеанса.

Является ли это выполнимым? Если я это знаю, я приступлю и грязно сообразим, что Nginx начнет.

ответ

0

Предполагаю, что вы храните свои сессии в памяти nodejs. Вместо этого вы можете сохранить свои сеансы в redis. Таким образом, он сохраняется за пределами одного сервера и может быть доступен из нескольких процессов.

В дополнение к redis, вам также может понадобиться изучить Amazon Elastic Beanstalk для управления балансировкой нагрузки. Вы можете настроить прокси-сервер nginx для маршрутизации ваших запросов на несколько серверов на основе их нагрузки.

Эта ссылка может быть в состоянии, чтобы вы начали http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express_elasticache.html

+1

Я действительно хотел бы использовать Redis, но я бег серверов Windows, к сожалению, и они должны быть полностью готовыми к производству, несмотря на тупые администратор на полпути по всей планете. – dthree

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