set_hashed_upstream

Устанавливает хэшированную переменную upstream, используемую для согласованного хэширования в NGINX.

Синтаксисset_hashed_upstream variable string [options];
По умолчаниюnone
Контекстhttp, server, location, if in server, if in location
Аргументы3

Описание

Директива set_hashed_upstream является частью NGINX Set-Misc module и используется для вычисления значения хэша на основе параметров upstream, что позволяет последовательно направлять запросы к upstream servers. Эта директива принимает три аргумента: переменную, которую нужно установить вычисленным хэшем; строку, определяющую алгоритм хеширования; и необязательный аргумент, который может быть привязан к конкретным конфигурациям или поведению upstream. Таким образом директива облегчает балансировку нагрузки и гарантирует, что запросы с одинаковыми параметрами upstream последовательно направляются к одному и тому же upstream server, независимо от числа доступных или добавленных серверов.

При использовании set_hashed_upstream вы можете влиять на то, как запросы распределяются между вашими upstream servers. Это особенно полезно в сценариях, где используются sticky sessions или требуется последовательно поддерживать состояние сессии между запросами от одного клиента. Функция хеширования помогает обеспечить, чтобы клиенты стабильно попадали на один и тот же backend server, что может минимизировать такие проблемы, как потеря сессии или несоответствие состояния, если данные сессии хранятся на конкретном сервере. Это делает директиву полезной в конфигурациях с высокой доступностью или в распределённых приложениях.

Пример конфига

set_hashed_upstream $hashed_upstream "my_request_id";

Убедитесь, что строка алгоритма хеширования указана правильно; в противном случае поведение может быть непредсказуемым.

Избегайте использования этой директивы в контексте 'if' без понимания последствий, так как NGINX может вести себя не так, как ожидается.

Убедитесь, что устанавливаемая переменная не используется также в upstream block, так как это может привести к циклическим зависимостям.

← Ко всем директивам