client_max_body_size

Ограничивает максимальный размер тела клиентского запроса.

Синтаксисclient_max_body_size size;
По умолчанию1m
Контекстhttp, server, location
Аргументы1

Описание

Директива client_max_body_size в NGINX задаёт максимально допустимый размер тела клиентского запроса, что важно для контроля использования ресурсов и предотвращения злоупотреблений. Эту директиву можно настраивать в трёх контекстах: http, server и location, что позволяет гибко применять ограничение в зависимости от требуемой области действия.

Параметр для client_max_body_size можно задавать с использованием различных единиц размера, таких как 'k' для килобайт, 'm' для мегабайт или 'g' для гигабайт. Например, указание client_max_body_size 10m; ограничивает тело запроса максимум до 10 мегабайт. Если клиент попытается отправить тело запроса больше указанного лимита, NGINX немедленно вернёт ошибку 413 Request Entity Too Large, тем самым защищая сервер от чрезмерной нагрузки.

Важно отметить, что установка этой директивы на разных уровнях может приводить к различному поведению в зависимости от контекста обработки запроса. Например, если в блоке location задать client_max_body_size меньше, чем на уровне http, то при обработке запроса приоритет будет у настройки на уровне location. Такой иерархический подход позволяет администраторам реализовывать специфические конфигурации для разных частей приложения по мере необходимости.

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

server {
    listen 80;
    server_name example.com;

    client_max_body_size 10m;

    location /upload {
        proxy_pass http://backend;
    }
}

Установка client_max_body_size слишком низкого значения может помешать законной загрузке файлов и привести к плохому пользовательскому опыту.

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

Помните, что эта директива не влияет на заголовок Content-Length, если он указан клиентом.

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