echo_request_body

Директива `echo_request_body` возвращает тело запроса клиенту в ответе.

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

Описание

Директива echo_request_body является частью NGINX Echo Module и позволяет серверу читать и возвращать тело входящих HTTP-запросов. Эта возможность особенно полезна при отладке или тестировании API, когда нужно проверить точные данные, отправляемые клиентом. Когда эта директива вызывается внутри блока location, она побуждает NGINX прочитать тело запроса и вернуть его в составе HTTP-ответа.

Директива не требует аргументов и должна располагаться внутри контекста location или в if-выражении внутри location. При выполнении директивы NGINX сначала проверяет, есть ли тело запроса для чтения. Если оно присутствует, содержимое отправляется обратно клиенту. Если метод запроса не допускает тела (например, GET) или клиент не отправил тело, в выводе этого может не быть. Обратите внимание, что echo_request_body не изменяет запрос или ответ в других аспектах и служит исключительно для предоставления информации о полученных данных.

Для корректной работы рекомендуется использовать эту директиву в тех location, где ожидается наличие тела запроса, например в запросах POST или PUT. В сложных конфигурациях сервера с несколькими location или условными директивами сервера расположение и порядок этой директивы могут влиять на её эффективность и удобство использования.

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

location /echo {
    echo_request_body;
}

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

Эту директиву следует размещать в правильном контексте; её неправильное использование может привести к непредсказуемому поведению или полному отсутствию вывода.

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