fair
Директива 'fair' обеспечивает справедливый механизм балансировки нагрузки в NGINX, распределяя запросы между серверами в upstream на основе их текущей загрузки.
Описание
Директива '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 может повлиять на распределение запросов, потенциально приводя к неравномерной нагрузке при неправильной настройке.