mirror

Директива `mirror` в NGINX используется для создания дублирующего запроса к указанному upstream server, фактически зеркалируя входящие запросы на backend, не затрагивая исходный ответ.

Синтаксисmirror ;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива mirror позволяет серверу отправлять дублирующий запрос, соответствующий исходному запросу, на backend server. Это может быть полезно для различных целей, таких как логирование, мониторинг производительности или тестирование, не влияя на исходный пользовательский опыт. Когда эта директива используется в HTTP-контексте (http, server или location), она указывает URL upstream server, который будет обрабатывать зеркалируемый запрос.

На практике при получении запроса NGINX обрабатывает его как обычно, а затем параллельно отправляет точную копию этого запроса на настроенный upstream server, определённый в директиве mirror. Это означает, что ответ на основной запрос и ответ на зеркалируемый запрос могут обрабатываться независимо. Указание правильного upstream server имеет решающее значение для того, чтобы зеркалируемый запрос работал как задумано.

Один из важных аспектов директивы mirror заключается в том, что она не ожидает ответа от зеркалируемого запроса; следовательно, любая обратная информация от upstream server по поводу зеркалируемого запроса не влияет на исходный запрос пользователя. Эта особенность может повлиять на производительность, так как зеркалируемые запросы фактически удваивают трафик к указанному backend server.

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

location /example {
    mirror /backend;
}

location = /backend {
    internal;
    proxy_pass http://backend-server;
}

Цель запроса зеркалирования должна быть указана правильно; неверный URL вызовет проблемы в процессе зеркалирования.

Помните, что зеркалируемые запросы не влияют на исходный ответ; будьте осторожны, если бэкенд предназначен для сохранения состояния.

← Ко всем директивам