fair

Директива 'fair' обеспечивает справедливый механизм балансировки нагрузки в NGINX, распределяя запросы между серверами в upstream на основе их текущей загрузки.

Синтаксисfair;
По умолчаниюnone
Контекстupstream
Аргументыany

Описание

Директива 'fair' является улучшением традиционного метода балансировки нагрузки round-robin, используемого в upstream-модуле NGINX. Она интеллектуально направляет трафик на бэкенд-серверы, учитывая их текущую загрузку и количество обрабатываемых запросов. Это особенно полезно в сценариях, когда бэкенд-серверы могут иметь разную вычислительную мощность или когда они сталкиваются с временными перегрузками. Отслеживая количество текущих запросов на каждом сервере и отдавая предпочтение тем, у которых меньше активных соединений, директива 'fair' помогает поддерживать более высокую общую производительность и отзывчивость для пользователей.

При использовании эта директива может быть включена в блок 'upstream' для определения группы бэкенд-серверов. Балансировщик нагрузки собирает метрики с каждого сервера, такие как число активных запросов, и принимает решения о распределении запросов на основе этих метрик. Таким образом, если один сервер занят, а другой простаивает, запросы будут направлены на менее загруженный сервер, что оптимизирует использование ресурсов и уменьшает время отклика для клиентов. Важно отметить, что директива 'fair' требует специальной настройки, чтобы корректно отслеживать нагрузку и адекватно на неё реагировать, особенно в сочетании с проверками работоспособности бэкенд-серверов.

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

upstream mongrel {
    fair;
    server 127.0.0.1:5000;
    server 127.0.0.1:5001;
    server 127.0.0.1:5002;
}

Убедитесь, что для бэкенд-серверов настроены надлежащие проверки работоспособности, чтобы не направлять трафик на неработающие серверы.

Отслеживайте время отклика серверов и их производительность, поскольку директива 'fair' опирается на точные метрики трафика для оптимальной работы.

Имейте в виду, что установка дополнительных параметров для weights может повлиять на распределение запросов, потенциально приводя к неравномерной нагрузке при неправильной настройке.

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