Nginx как балансировщик нагрузки: настройка

VDS / VPS серверы · 17.02.2025
Nginx как балансировщик нагрузки: настройка

Базовая конфигурация upstream

upstream backend {
    # Round-robin по умолчанию
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
    server 10.0.0.3:8080 weight=2;  # В 2 раза больше запросов

    # Запасной сервер
    server 10.0.0.4:8080 backup;

    keepalive 32;  # Persistent connections
}

server {
    listen 80;
    location / {
        proxy_pass http://backend;
        proxy_next_upstream error timeout;
    }
}

Алгоритмы балансировки

АлгоритмДирективаПрименение
Round Robin(по умолчанию)Равнозначные серверы
Least Connectionsleast_connРазные по нагрузке запросы
IP Haship_hashSticky sessions по IP
Hashhash $request_uriКэш-консистентность

Least Connections

upstream backend {
    least_conn;
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
}

Healthcheck (Nginx Plus / nginx_upstream_check_module)

upstream backend {
    server 10.0.0.1:8080 max_fails=3 fail_timeout=30s;
    server 10.0.0.2:8080 max_fails=3 fail_timeout=30s;
}
💡 keepalive 32 в блоке upstream поддерживает постоянные соединения к бэкендам — снижает накладные расходы на TCP-хэндшейки.
← Назад в базу знаний Задать вопрос поддержке