Параметры конфигурации#

groups#

Позволяет объединять несколько серверов или групп серверов в одну группу для удобства переиспользования в разных зонах и правилах. Для группы можно задать произвольное имя.

Пример:

groups:
  www:
    servers:
      - server: www1
      - server: www2
  www3:
    servers:
      - server: www4
      - server: www5
      - group: www

Поле

Описание

Тип

Обязательно

имя

Имя группы (произвольное)

string

Да

servers

Задает список серверов или групп серверов, входящих в группу

servers [ ]

Да

server

Имя сервера, входящего в группу (сами серверы задаются в блоке servers).

string

Нет

group

Имя группы серверов, входящих в группу

string

Нет

zones#

Задает список доменов и определяет конфигурацию глобальной балансировки для этих доменов. Для каждого домена указывается доменное имя и список правил балансировки. Правила применяются по очереди до первого успешного ответа. Для правил можно дополнительно задать и серверы и группы серверов, к которым будут применяться эти правила. Если серверы для правила не заданы, то будут взяты серверы, указанные по умолчанию в соответствующем правиле.

Пример:

zones:
  www.example.org:
    rules:
      - rule: wrr-servers
        servers:
          - group: www
          - server: www11

Поле

Описание

Тип

Обязательно

домен

Имя домена, для которого выполняется глобальная балансировка. В будущих релизах будут поддержаны wildcard-домены.

string

Да

rules

Задает список правил для домена. Для каждого домена требуется указать хотя бы одно правило.

rules [ ]

Да

rule

Указывает имя используемого правила балансировки (само правило задается в блоке rules).

string

Да

servers

Задает список серверов или групп серверов, для которых будет применяться правило. Если серверы для правила не указаны, то будут взяты серверы по умолчанию из соответствующего правила. Если серверы указаны, то они будут иметь приоритет.

servers [ ]

Нет

server

Имя сервера, для которого будет применяться правило (сами серверы задаются в блоке servers).

string

Нет

group

Имя группы серверов, для которой будет применяться правило (сами группы серверов задаются в блоке groups).

string

Нет

options#

Определяет общие параметры балансировки для всех зон.

Пример:

options:
  ttl: 1

Поле

Описание

Тип

Обязательно

ttl

Задает значение TTL (Time to Live) для DNS-записей в секундах — как часто должны обновляться записи; это позволяет оценить доступность серверов. По умолчанию установлено значение 1 (клиенты и кэширующие DNS-серверы должны обновлять записи каждую секунду).

число

Да

rules#

Определяет правила балансировки. Одни и те же правила можно использовать в нескольких зонах.

Пример:

rules:
  wrr-servers:
    type: round_robin
    weighted: true
    servers:
      - server: www1
      - server: www2

Поле

Описание

Тип

Обязательно

имя

Имя правила (произвольное).

string

Да

type

Задает тип балансировки правила. Если тип балансировки не указан, запрос будет направлен на первый сервер, от которого получен ответ.

Возможные значения:

  • round_robin — запросы распределяются по серверам последовательно;

  • dafault — запрос направляется на первый сервер, от которого получен ответ.

string

Нет

weighted

Определяет, будет ли учитываться вес сервера при балансировке round_robin. Если вес для сервера не указан, то при проверке конфигурации с weighted будет выдана ошибка.

boolean

Нет

servers

Задает список серверов или групп серверов, к которым по умолчанию применяется правило.

servers [ ]

Да

server

Имя сервера, для которого будет применяться правило (сами серверы задаются в блоке servers).

string

Нет

group

Имя группы серверов, для которой будет применяться правило. (сами группы серверов задаются в блоке groups).

string

Нет

servers#

Задает список серверов, участвующих в балансировке. Поддерживаются IPv4-адреса. Одни и те же серверы можно использовать в нескольких зонах, группах и правилах.

Пример:

servers:
  www1:
    addresses:
      - 172.22.0.10
    weight: 2
    healthpeers: "http://172.22.0.10/api/http/upstreams/examplecom/peers"
    healthinterval: 10s
    healthtimeout: 2s

  www2:
    addresses:
      - 172.22.1.10
    weight: 1
    healthpeers: "http://172.22.1.10/api/http/upstreams/examplecom/peers"
    healthinterval: 15s
    healthtimeout: 3s

Поле

Описание

Тип

Обязательно

имя

Имя сервера (произвольное).

string

Да

addresses

Задает список адресов сервера, на которые будут направляться запросы при балансировке. Если указано несколько адресов, запросы будут направляться на все адреса одновременно.

string

Да

weight

Задает вес сервера.

число

Да, если в правиле задан параметр weighted.

healthpeers

Задает путь до REST API, по которому модуль GSLB будет получать информацию о состоянии апстримов от локального балансировщика нагрузки на этом сервере:

  • для http-балансировки: http://<server_address>/api/http/upstreams/<server_name>/peers

  • для stream-балансировки: http://<server_address>/api/stream/upstreams/<server_name>/peers

Примечание

Проверки работоспособности предварительно необходимо настроить на локальном балансировщике Angie ADC.

string

Нет

healthinterval

Задает интервал между проверками. При указании интервала необходимо указывать единицу измерения s (секунды) или ms (милисекунды), например: 5s, 0.5s, 200ms.

string

Да, если указан параметр healthpeers.

healthtimeout

Задает таймаут на каждую проверку. При указании таймаута необходимо указывать единицу измерения s (секунды) или ms (милисекунды), например: 5s, 0.5s, 200ms.

string

Да, если указан параметр healthpeers.