post_action

Директива `post_action` задаёт обработчик, который выполняется после отправки ответа клиенту. — NGINX HTTP Core

post_action
httpserverlocationif in location
Синтаксисpost_action uri;
По умолчаниюnone
Контекстhttp, server, location, if in location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `post_action` в NGINX позволяет указать дополнительное действие, которое должно выполняться после обработки запроса. Эту директиву можно определить на разных уровнях конфигурации NGINX, таких как http, server, location, или внутри 'if' выражений в пределах location block, что обеспечивает гибкость в соответствии с различными потребностями при обработке HTTP-запросов. Основная цель этой директивы — позволить выполнять последующие задачи обработки, которые не влияют на немедленный ответ клиенту, такие как логирование, уведомления или дополнительная фоновая обработка.\n\nКогда вы используете директиву `post_action`, указанный URI будет запрошен после выполнения основного запроса, потенциально отправляя фоновый запрос к другой конечной точке. Однако важно убедиться, что эта конечная точка обрабатывается должным образом, поскольку NGINX не ждёт завершения `post_action`; он лишь запускает её после обработки основного ответа. Это позволяет выполнять операции, которые не критичны для опыта пользователя, но могут быть важны для аудита или обслуживания системы.\n\nДиректива принимает один аргумент — URI, который будет запрошен post-action. Учтите, что URI может включать параметры запроса и должен напрямую относиться к действительному location block, определённому в конфигурации NGINX.

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

location /example {
    post_action /post-handler;
}

Убедитесь, что URI, указанный в `post_action`, существует и доступен для NGINX, иначе это может привести к непредвиденному поведению.

`post_action` не ожидает завершения обработки на бэкенде; любые необходимые операции очистки должны выполняться внутри самого `post_action`.