Назад | Перейти на главную страницу

липкие сессии nginx / ip_hash с Socket.io

Я должен балансировать нагрузку на два экземпляра node.js / Socket.io на разных ящиках, где nginx запускает простую службу уведомлений с ретроактивным событием для новых клиентов.

Я не думаю, что возникнут какие-либо проблемы с типом подключения к веб-сокету (который будет основным методом подключения), поскольку поддерживаемое соединение сводит на нет необходимость сеанса (кроме повторного подключения, которое меня не слишком беспокоит) .

Однако возникнет проблема с подходами к отказу от опроса, поскольку они полагаются на клиентские сеансы и со стандартной балансировкой нагрузки roundrobin (в этом случае) с 50% вероятностью, что следующий опрос появится как новый клиент.

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

Кажется, что ip_hash сработает, но я вижу, что у него есть потенциальные проблемы с мобильными клиентами, которые либо меняют IP-адреса в сети 3G, либо меняются между мобильной сетью и WiFi, таким образом меняя IP-адрес.

У меня есть пара вопросов, связанных с этим; если вы ответите на любой вопрос, было бы здорово ...

  1. Есть ли у ip_hash какой-либо срок жизни, или IP-адрес постоянно назначается внутреннему экземпляру?
  2. Может ли кто-нибудь поделиться опытом / рекомендациями по использованию балансировки нагрузки nginx с Socket.io и / или мобильными клиентами?