Destination Hash Scheduling и Source Hash Scheduling
Destination Hash Scheduling был создан для работы с кластером кэширующих прокси-серверов. В этом алгоритме сервер, обрабатывающий запрос, выбирается из статической таблицы по IP-адресу получателя.
Source Hash Scheduling основывается на тех же самых принципах, только сервер, который будет обрабатывать запрос, выбирается из таблицы по IP-адресу отправителя.
Липкие сессии (Sticky Sessions)
Sticky Sessions — алгоритм распределения входящих запросов, при котором соединения передаются на один и тот же сервер группы. Сессии пользователя могут быть закреплены за конкретным сервером с помощью метода IP hash. С помощью этого метода запросы распределяются по серверам на основе IP-aдреса клиента. Метод гарантирует, что запросы одного и того же клиента будет передаваться на один и тот же сервер. Если закреплённый за конкретным адресом сервер недоступен, запрос будет перенаправлен на другой сервер.
Пример фрагмента конфигурационного файла:
upstream backend {
ip_hash;
server backend1.example.ru;
server backend2.example.ru;
server backend3.example.ru;
server backend4.example.ru;
}
Если клиент использует динамический IP, то могут возникнуть проблемы с привязкой сессий. В ситуации, когда большое количество запросов проходит через один прокси-сервер, балансировку вряд ли можно назвать эффективной и справедливой. Но это можно решить, используя cookies.
В коммерческой версии Nginx имеется специальный модуль sticky, который как раз использует cookies для балансировки. Есть у него и бесплатные аналоги — например, nginx-sticky-module.
Метод sticky-sessions можно также использовать в HAProxy.
#nginx #балансировка_нагрузки #haproxy