client_max_body_size
Ограничивает максимальный размер тела клиентского запроса. — NGINX HTTP Core
Описание
Директива `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`, если он указан клиентом.