#Что означает ошибка
413 Request Entity Too Large
По умолчанию nginx ограничивает тело запроса значением client_max_body_size 1m — один мегабайт. Если вы загружаете файл больше, сервер возвращает 413. Но лимит может стоять и выше по цепочке: в PHP, Cloudflare (100 МБ на бесплатном тарифе), балансировщике или в самом приложении. Настройте все звенья цепочки.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
Лимит nginxПараметр client_max_body_size слишком мал. | Ошибка 413 страница nginx. | Увеличьте значение. |
Лимиты PHPupload_max_filesize или post_max_size меньше размера файла. | Загрузка прерывается без 413 или с ошибкой PHP. | Измените php.ini. |
| Лимит прокси или CDNCloudflare, балансировщик или Ingress ограничивают размер. | Ошибка со страницы CDN. | Измените лимит прокси. |
| Лимит приложенияWordPress, Nextcloud, Laravel имеют свои лимиты. | Ограничение в админке. | Настройте приложение. |
#Пошаговое решение
- Определите, где ошибкаПри загрузке файла откройте в браузере F12 → «Сеть», выберите неуспешный запрос и прочитайте HTTP-статус. Если 413 выдаёт Nginx, ищите
client intended to send too large bodyв error.log; если код формирует CDN/Ingress, лимит находится на другом уровне. Сохраните размер файла и точный URL запроса. - Откройте конфигАдминистратор по SSH выполните
sudo nginx -T 2>&1 | grep -n client_max_body_sizeи найдите конфигурациюserverилиlocationнужного сайта. Сохраните копию файла и обратите внимание на переопределения в более специфичных блоках; не увеличивайте глобальный лимит для всех сайтов. - Добавьте лимитДля файла до выбранного допустимого размера добавьте в соответствующий контекст Nginx
client_max_body_size 20m;или иное обоснованное значение. Этот предел относится к общему телу HTTP-запроса; не разрешайте произвольные гигабайтные загрузки, если приложение их не обрабатывает и не проверяет. - Проверьте конфигурациюВыполните
sudo nginx -tи убедитесь вsyntax is okиtest is successful. При ошибке не применяйте конфигурацию; верните резервную копию или исправьте указанную строку. Только после успешной проверки переходите к reload. - Перезагрузите nginxПримените конфигурацию
sudo systemctl reload nginx, затем повторите загрузку файла размера чуть ниже порога. Проверьте error.log, что прежнего 413 больше нет. Полный перезапуск Nginx не требуется для обычной смены директивы. - Настройте PHPЕсли загрузку обрабатывает PHP, проверьте в панели хостинга фактические
upload_max_filesizeиpost_max_sizeвеб-PHP; POST должен вмещать файл плюс остальные поля. После правки параметров перезагружайте только конкретный PHP-FPM нужной версии, а не произвольный пул. - Проверьте timeoutsЕсли большой файл принимается, но загрузка завершается по времени, отдельно проверьте таймауты приложения и reverse proxy; ошибка 413 сама по себе не связана с
proxy_read_timeout. Не увеличивайте таймауты без измерения реального времени передачи и последующей обработки. - Проверьте Ingress/CDNЕсли используется Kubernetes Ingress или CDN, проверьте их лимит тела запроса в конфигурации конкретного маршрута. При меньшем ограничении внешнего прокси увеличение Nginx на backend не поможет; после исправления проверьте все уровни и сохраните разумный максимальный размер загрузки.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
Значение post_max_size должно быть не меньше upload_max_filesize. Параметр client_max_body_size 0; полностью отключает проверку, но так делать на публичном сервере не стоит — это открывает путь к перегрузке диска. Для WordPress дополнительно проверьте константу WP_MEMORY_LIMIT и ограничение в Multisite. Справка — .
Проверить, какой лимит реально применяется, можно командой sudo nginx -T | grep -n client_max_body_size: она покажет все места, где параметр задан, и приоритет всегда у самого вложенного блока (location важнее server, server важнее http). Если после правки ошибка осталась, убедитесь, что вы перезагрузили именно тот nginx, который обслуживает сайт (в Docker — внутри контейнера), и очистите кэш браузера. Для загрузки очень больших файлов лучше использовать чанковую загрузку или прямую загрузку в объектное хранилище, а не повышать лимит до гигабайтов.