echo_after_body

Директива `echo_after_body` позволяет выводить дополнительные ответы после того, как тело HTTP-ответа было отправлено клиенту.

Синтаксисecho_after_body;
По умолчаниюnone
Контекстlocation, if in location
Аргументыany

Описание

Директива echo_after_body может использоваться в контексте ngx_http_echo для отправки дополнительного содержимого после того, как основное тело ответа было доставлено. Такое поведение позволяет серверу запускать сложные сценарии формирования ответа, при которых заголовки и тело могут обрабатываться отдельно. Команда, связанная с этой директивой, может включать любую допустимую директиву NGINX, что обеспечивает мощную настройку содержимого ответа.

Когда эта директива вызывается, она позволяет выполнять дальнейшую обработку запроса даже после того, как основное тело было записано клиенту. Например, это может быть полезно в ситуациях, когда определённые информационные сообщения или записи в журнал нужно отправить после завершения ответа, не задерживая при этом клиента. Используя эту директиву, например, можно генерировать логи сервера для операции, при этом клиент сразу получает основной ответ. Это может помочь улучшить воспринимаемую производительность сервиса, поскольку клиент не задерживается в ожидании завершения дополнительных задач перед получением запрошенного контента.

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

location /example {
    echo "Response body sent";
    echo_after_body "This message comes after the body";
}

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

Использование echo_after_body вместе с изменениями ответа может привести к непредвиденным результатам из-за изменения состояния соединения после отправки тела ответа.

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