uwsgi_pass_request_body

Директива uwsgi_pass_request_body контролирует, передается ли тело запроса на сервер uWSGI вместе с заголовками запроса. — NGINX HTTP Core

uwsgi_pass_request_body
httpserverlocation
Синтаксисuwsgi_pass_request_body on | off;
По умолчаниюon
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `uwsgi_pass_request_body` — это флаг, который определяет, следует ли отправлять тело запроса на сервер uWSGI, когда запрос проксируется с помощью `uwsgi_pass`. Если установлено в `on`, тело запроса передается бэкенд-приложению uWSGI, позволяя ему обрабатывать данные, такие как отправки форм, загрузки файлов или другие полезные нагрузки, содержащиеся в теле HTTP-запросов. Соответственно, при `off` тело запроса не отправляется, что может быть полезно в сценариях, где требуется только информация из заголовков и тело можно игнорировать, что потенциально улучшает производительность за счет снижения объема передаваемых данных. Эту директиву можно настраивать в контекстах `http`, `server` или `location`, что делает её универсальной и применимой в разных конфигурациях. Она особенно важна для приложений, которые обрабатывают HTTP-методы, обычно имеющие тело, такие как POST или PUT. Поведение этой директивы напрямую влияет на то, как сервер uWSGI взаимодействует с полученными запросами; например, если отправлен запрос, требующий наличия тела, в то время как `uwsgi_pass_request_body` установлен в `off`, приложение uWSGI получит уведомление об отсутствии данных в теле, что может привести к ошибкам, если это не обработано корректно.

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

location /api {
    uwsgi_pass unix:/tmp/myapp.sock;
    uwsgi_pass_request_body off;
}

Убедитесь, что бэкенд-приложение готово обрабатывать запросы без тела, когда установлено значение 'off'.

Использование 'off' может привести к проблемам с HTTP-методами, такими как POST, которые обычно требуют наличия тела запроса. Избегайте этого, если приложению требуется тело.