uwsgi_request_buffering
Директива 'uwsgi_request_buffering' контролирует, буферизуются ли тела запросов при обработке запросов uWSGI. — NGINX HTTP Core
Описание
Директива 'uwsgi_request_buffering' в NGINX имеет решающее значение для управления тем, как обрабатываются тела запросов при взаимодействии с приложениями uWSGI. При включённой буферизации NGINX сохраняет тело запроса до тех пор, пока не будет получено всё содержимое, что позволяет вышестоящему серверу получить весь пакет данных сразу. Это особенно полезно при обработке крупных загрузок или когда вышестоящий сервер должен проверить тело запроса целиком перед обработкой. С другой стороны, отключение буферизации запросов может снизить использование памяти и повысить производительность в сценариях с высокой конкуренцией или при небольших размерах запросов, поскольку NGINX будет передавать тело запроса напрямую приложению uWSGI без буферизации. Настройку можно подобрать в зависимости от ожидаемого размера запросов и характеристик производительности вашего приложения. Параметр для 'uwsgi_request_buffering' принимает флаг, который может быть либо 'on', либо 'off'. При значении 'on' буферизация включена; при 'off' — буферизация отключена. Важно понимать влияние этой директивы на производительность приложения и выбор бэкенд-обработки. В сценариях, где данные передаются в реальном времени (например, загрузки файлов) или ответы нужно отправлять, как только доступны части запроса, предпочтителен вариант с отключённой буферизацией. Напротив, для сложных полезных нагрузок или когда критична целостность запроса, включение этой опции обеспечивает анализ запроса в целом перед его обработкой.
Пример конфига
server {
listen 80;
server_name example.com;
location / {
uwsgi_pass 127.0.0.1:8000;
uwsgi_request_buffering off;
}
}Использование 'off' может привести к большему использованию ресурсов, если отправляются большие полезные нагрузки, поскольку они будут передаваться напрямую в upstream без буферизации.
Если upstream-приложение не может обрабатывать частичные запросы (т.е. ожидает полного тела запроса), установите его в 'on'.