Spec-Zone.ru › nginx

Модуль ngx_http_upstream_conf_module

  • Пример конфигурации
  • Директивы
  • upstream_conf

Модуль ngx_http_upstream_conf_module позволяет настраивать группы серверов upstream в режиме реального времени через простой HTTP-интерфейс без необходимости перезапуска nginx. Группа серверов http или stream должна находиться в общей памяти.

Этот модуль был доступен в рамках нашей коммерческой подписки до версии 1.13.10. Он был заменён модулем ngx_http_api_module в версии 1.13.3.

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

upstream backend {
    zone upstream_backend 64k;

    ...
}

server {
    location /upstream_conf {
        upstream_conf;
        allow 127.0.0.1;
        deny all;
    }
}

Директивы

Синтаксис: upstream_conf;
По умолчанию: —
Контекст: location

Включает HTTP-интерфейс для конфигурирования upstream в окружающем локе. Доступ к этому локе должен быть ограничен.

Команды конфигурации могут быть использованы для:

  • просмотра конфигурации группы;
  • просмотра, изменения или удаления сервера;
  • добавления нового сервера.
Поскольку адреса в группе не обязательно должны быть уникальными, к конкретным серверам в группе обращаются по их идентификаторам. Идентификаторы назначаются автоматически и отображаются при добавлении нового сервера или просмотре конфигурации группы.

Команда конфигурации состоит из параметров, переданных в качестве аргументов запроса, например:

http://127.0.0.1/upstream_conf?upstream=backend

Поддерживаются следующие параметры:

stream=
Выбирает группу серверов upstream stream. Без этого параметра выбирается группа серверов upstream http.
upstream=name
Выбирает группу для работы. Этот параметр обязателен.
id=number
Выбирает сервер для просмотра, изменения или удаления.
remove=
Удаляет сервер из группы.
add=
Добавляет новый сервер в группу.
backup=
Требуется для добавления резервного сервера.
До версии 1.7.2, backup= также требовался для просмотра, изменения или удаления существующих резервных серверов.
server=address
То же, что и параметр “address” сервера upstream http или stream.

При добавлении сервера можно указать его имя домена. В этом случае изменения IP-адресов, соответствующих имени домена, будут отслеживаться и автоматически применяться к конфигурации upstream без необходимости перезапуска nginx (1.7.2). Это требует директивы “resolver” в блоке http или stream. См. также параметр “resolve” сервера upstream http или stream.

service=name
То же, что и параметр “service” сервера upstream http или stream (1.9.13).
weight=number
То же, что и параметр “weight” сервера upstream http или stream.
max_conns=number
То же, что и параметр “max_conns” сервера upstream http или stream.
max_fails=number
То же, что и параметр “max_fails” сервера upstream http или stream.
fail_timeout=time
То же, что и параметр “fail_timeout” сервера upstream http или stream.
slow_start=time
То же, что и параметр “slow_start” сервера upstream http или stream.
down=
То же, что и параметр “down” сервера upstream http или stream.
drain=
Переводит сервер upstream http в режим «ожидания» (1.7.5). В этом режиме будут проксироваться только запросы, привязанные к этому серверу.
up=
Обратный параметру “down” сервера upstream http или stream.
route=string
То же, что и параметр “route” сервера upstream http.

Первые три параметра выбирают объект. Это может быть вся группа серверов http или stream, или конкретный сервер. Без других параметров отображается конфигурация выбранной группы или сервера.

Например, чтобы просмотреть конфигурацию всей группы, отправьте:

http://127.0.0.1/upstream_conf?upstream=backend

Чтобы просмотреть конфигурацию конкретного сервера, укажите также его идентификатор:

http://127.0.0.1/upstream_conf?upstream=backend&id=42

Чтобы добавить новый сервер, укажите его адрес в параметре “server=”. Без других указанных параметров сервер будет добавлен с параметрами, установленными по умолчанию (см. директиву http или stream “server”).

Например, чтобы добавить новый первичный сервер, отправьте:

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080

Чтобы добавить новый резервный сервер, отправьте:

http://127.0.0.1/upstream_conf?add=&upstream=backend&backup=&server=127.0.0.1:8080

Чтобы добавить новый первичный сервер, задать его параметры отличными от значений по умолчанию и отметить его как “down”, отправьте:

http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080&weight=2&down=

Чтобы удалить сервер, укажите его идентификатор:

http://127.0.0.1/upstream_conf?remove=&upstream=backend&id=42

Чтобы отметить существующий сервер как “down”, отправьте:

http://127.0.0.1/upstream_conf?upstream=backend&id=42&down=

Чтобы изменить адрес существующего сервера, отправьте:

http://127.0.0.1/upstream_conf?upstream=backend&id=42&server=192.0.2.3:8123

Чтобы изменить другие параметры существующего сервера, отправьте:

http://127.0.0.1/upstream_conf?upstream=backend&id=42&max_fails=3&weight=4

Приведенные примеры относятся к группе серверов upstream http. Аналогичные примеры для группы серверов upstream stream требуют параметра “stream=”.

© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_upstream_conf_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API