Резервирование проксируемых серверов#

В Angie ADC поддерживается использование нескольких backup-групп проксируемых серверов .

Уровень резервирования backup-группы можно задать с помощью директивы backup=n в блоках stream и http. Например backup=1 (или просто backup) — группа резервных серверов первого уровня, (в API отображается как true), backup=2 — группа резервных серверов второго уровня, (в API отображается как соответствующее число).

Для SRV-записей уровень резервирования группы можно задать двумя способами:

  • С помощью директивы backup=prio как абсолютное значение.

    В этом случае значение приоритета priority=n из SRV-записи будет использовано в качестве уровня резервной группы: backup=n.

  • Через относительное значение приоритета priority=n из SRV-записи.

    В этом случае директива backup=n задает базовый уровень отсчета (например backup=3), а относительные уровни резервирования отсчитываются от этого уровня. Сервер с наименьшим значением priority получит уровень backup=3, следующий за ним — backup=4 и так далее. Если уровень отсчета backup=n не задан, отсчет будет идти от нуля: сервер с наименьшим значением priority получит backup=0 и станет основным, за ним — backup=1, резервный, и так далее.

Директива backup_switch permanent дает возможность backup-группе проксируемых HTTP-серверов оставаться активной, когда серверы из основной группы стали снова доступными. Например, вы можете указать permanent=2m, чтобы балансировщик нагрузки не пытался вернуться на основную группу чаще, чем раз в две минуты. Если указать параметр permanent без значения, то балансировщик нагрузки не будет пытаться вернуться на основную группу после перехода на резервную. Функциональность backup_switch permanent реализована для http и stream.

Пример:

upstream my_backend {
    server primary1.example.com;
    server primary2.example.com;

    server backend.example.com service=http resolve backup=prio;

     server backup1a.example.com backup;
     server backup1b.example.com backup;

     server backup2a.example.com backup=2;
     server backup2b.example.com backup=2;

     backup_switch permanent=2m;
}