Прив’язка сесії до сервера Nginx

Sticky session - метод балансування навантаження, при якому запити клієнта передаються на той самий сервер групи.

Найпростіший спосіб закріпити сесії користувача за конкретним сервером у Nginx - використовувати метод ip-hash:

У Nginx існує метод sticky, який використовує cookie для балансування, правда тільки в комерційній версії. Є й безкоштовний шлях — використання зовнішніх модулів.

Nginx-sticky-module

варто замінити на

Щоб встановити цей модуль, потрібно скомпілювати Nginx із цим модулем. Для цього потрібно, якщо ні, встановити компілятор С/С++ та бібліотеки, які використовуються nginx (для RedHat/CentOS):

завантажити останню версію вихідних файлів Nginx, розпакувати її в не важкодоступне місце, знайти в розпакованій папці src, розпакувати в неї архів nginx-sticky-module або nginx-sticky-module-ng і далі визначившись з опціями nginx, які будуть потрібні, скомпілювати

init.d script можна знайти тут, який потрібно скопіювати у файл:

та дати йому права запуску

після чого можна використовувати команди сервісу та налаштувати автоматичний запуск після перезавантаження:

Налаштування sticky session виглядає не складнішим, ніж для методу ip_hash:

За промовчанням буде створюватися cookie з ім'ям route та часом життя 1 годину. Метод може приймати кілька аргументів, які можна дізнатися на сайтах модулів.

Для любителів збочень та обходитися без сторонніх модулів можна використовувати налаштування sticky session представлене тут.

Хардкорна конфа за С++. Ми запрошуємо лише профі.