Nginx балансировка нагрузки less_conn на разных восходящих потоках - PullRequest
0 голосов
/ 26 мая 2020

У нас разные nginx upstreams, вот такие:

upstream php1_read {
    zone read-pool 256k;

    least_conn;

    server 10.1.0.4:9001 max_fails=1 fail_timeout=20s;
    server 10.1.0.5:9001 max_fails=1 fail_timeout=20s;
    server 10.1.0.6:9001 max_fails=1 fail_timeout=20s;

    keepalive 42;
    keepalive_requests 5000;
    keepalive_timeout 600s;
}

upstream php2_read {
    zone read-pool;

    least_conn;

    server 10.1.0.4:9002 max_fails=1 fail_timeout=20s;
    server 10.1.0.5:9002 max_fails=1 fail_timeout=20s;
    server 10.1.0.6:9002 max_fails=1 fail_timeout=20s;

    keepalive 42;
    keepalive_requests 5000;
    keepalive_timeout 600s;
}

Вопрос в том, least_conn (256k указывается только один раз согласно nginx docs ) метод читает то, что хранится на read-pool и так:

  • если php1_read имеет 200 подключений на 1-м сервере и 20 на 2-м и 3-м,
  • отправляет ли php2_read восходящий поток соединения на серверы 2 и 3 в соответствии со спецификацией minimum_conn, даже если они находятся в разных восходящих потоках, но совместно используют одну и ту же зону?
...