proxy_pass_request_body

Директива `proxy_pass_request_body` управляет тем, передаётся ли тело запроса проксируемому серверу в NGINX.

Синтаксисproxy_pass_request_body on | off;
По умолчаниюon
Контекстhttp, server, location
Аргументыflag

Описание

Директива proxy_pass_request_body — булев флаг, используемый в контексте блоков http, server и location в конфигурации NGINX. Когда эта директива установлена в "on", NGINX отправляет тело запроса проксируемому серверу при пересылке запросов. Это особенно важно при обработке POST-запросов или любых запросов, содержащих тело, таких как загрузки данных. Если директива установлена в "off", тело запроса не будет отправлено на upstream-сервер, что может привести к непредвиденному поведению, если приложению требуется получение тела.

Директива позволяет тонко настроить обработку запросов в прокси-ситуациях, позволяя оптимизировать работу для разных бэкенд-приложений. При отсутствии этой директивы значение по умолчанию — "on", то есть по умолчанию тело запроса будет пересылаться, если явно не указано иное. Это может быть критично для приложений, ожидающих обработку данных в проксируемой конфигурации.

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

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

location /api {
    proxy_pass http://backend;
    proxy_pass_request_body off;
}

Для POST-запросов убедитесь, что proxy_pass_request_body установлен в on, если бэкенду требуется тело.

Установка этой директивы в положение off может привести к неполной обработке данных на проксируемом сервере.

Применение в неверном контексте (например, внутри server block) приведёт к ошибкам конфигурации.

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