Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

client intended to send too large body: 413 Request Entity Too Large Linux / DevOps

Ошибка Nginx 413: client intended to send too large body — решение

Обновлено: 27.08.2026 · Официальная документация ↗

Почему сайт выдает ошибку 413 Request Entity Too Large?

При попытке загрузить на сайт большой медиафайл, видеоролик, архив с плагином или тяжелую базу данных в phpMyAdmin процесс прерывается ошибкой 413 (Request Entity Too Large). В логе ошибок веб-сервера /var/log/nginx/error.log фиксируется запись:

2025/02/23 14:20:00 [error] 12450#12450: *1 client intended to send too large body: 15728640 bytes, client: 192.168.1.1, server: example.com, request: "POST /wp-admin/async-upload.php HTTP/1.1", host: "example.com"

Причина ошибки:

В веб-сервере Nginx по умолчанию встроен жесткий лимит на максимальный размер тела входящего POST-запроса — ровно 1 Мегабайт (client_max_body_size 1M). Любой файл размером больше 1 Мб принудительно сбрасывается веб-сервером до того, как запрос дойдет до PHP или Node.js.

Пошаговое увеличение лимита в Nginx и PHP

  1. Шаг 1. Редактируем конфигурацию Nginx

    Откройте файл настроек вашего сайта или глобальный конфиг Nginx:

    # Для конкретного сайта:
    sudo nano /etc/nginx/sites-available/default
    
    # ЛИБО для всего сервера глобально:
    sudo nano /etc/nginx/nginx.conf
  2. Шаг 2. Добавляем параметр client_max_body_size

    Внутри блока http или блока server добавьте строку с нужным максимальным размером (например, 100 Мегабайт или 0 для отключения лимита):

    server {
        listen 80;
        server_name example.com;
    
        # Увеличиваем размер загружаемых файлов до 100 Мб:
        client_max_body_size 100M;
    
        location / {
            # ... остальные настройки ...
        }
    }
  3. Шаг 3. Проверяем и перезапускаем Nginx

    sudo nginx -t && sudo systemctl restart nginx
  4. Шаг 4. Увеличиваем лимиты в PHP (php.ini)

    Если сайт работает на PHP, обязательно увеличьте лимиты и в файле php.ini, иначе ошибку начнет возвращать уже сам PHP:

    sudo nano /etc/php/*/fpm/php.ini

    Найдите и измените два параметра:

    upload_max_filesize = 100M
    post_max_size = 100M

    Перезапустите PHP-FPM: sudo systemctl restart php*-fpm.

💡 Практика специалистов: Всегда устанавливайте параметр post_max_size в php.ini немного больше или равным upload_max_filesize. При POST-запросе передаются не только бинарные данные файла, но и служебные заголовки форм, которые суммируются в общий объем.

Частые вопросы (FAQ)

Что означает значение client_max_body_size 0?

Значение 0 полностью отключает проверку размера входящего запроса на стороне Nginx. Загрузка файлов любого размера будет разрешена без ограничений.

Почему после изменения Nginx ошибка сменилась на белый экран или File exceeds upload_max_filesize?

Nginx пропустил файл, но теперь его заблокировал интерпретатор PHP. Обязательно синхронизируйте параметры upload_max_filesize и post_max_size в php.ini.

В какое место nginx.conf безопаснее всего вставлять эту директиву?

Если вы хотите применить правило для всех сайтов на сервере сразу, пропишите client_max_body_size 100M; внутри общего блока http { ... } в файле /etc/nginx/nginx.conf.

Нужно ли перезагружать весь сервер после правки конфига?

Нет, достаточно выполнить мягкую перезагрузку службы: sudo systemctl reload nginx.

Полезные материалы
Рекомендуем