Nginx client_max_body_size: исправить ошибку 413

Категория: Nginx · Обновлено:

Если Nginx отвечает 413 Request Entity Too Large при загрузке файла, проверьте директиву client_max_body_size. Её можно задать на уровне http, server или отдельного location; устанавливайте лимит только там, где он действительно нужен. Пример ограничивает увеличенный размер запроса одним API-маршрутом.

Увеличить лимит для маршрута загрузки

Текст
server {
    location /api/uploads/ {
        client_max_body_size 20m;
        proxy_pass http://app_backend;
    }
}

Суффиксы k и m задают килобайты и мегабайты. Если директиву не указать, значение по умолчанию — 1m. Лимит location имеет смысл, когда остальные маршруты должны сохранить более низкое ограничение; настройка на верхнем уровне применяется шире.

В примере предполагается, что имя app_backend уже определено в блоке upstream.

После изменения конфигурации проверьте её через nginx -t и только затем выполните штатную перезагрузку сервиса. Если перед приложением есть ещё один прокси или ingress, проверьте его лимит тоже: любой уровень может отклонить запрос раньше Nginx.

Официальная справка: client_max_body_size.