Панели хостинга Linux; Nginx / Apache / PHP-FPM (в зависимости от панели)

Панель управления хостингом: при переходе на HTTP/2 перестаёт работать загрузка больших файлов

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Малые файлы проходят, а большие зависают либо получают 413, 408, 499, 502 или 504. HTTP/2 сам по себе не отменяет ограничения размера и времени на Nginx, PHP и в приложении; нужно установить реальный уровень ошибки.

В этой статье
  1. Симптом и границы применимости
  2. Возможные причины и признаки
  3. Пошаговая диагностика и исправление
  4. Проверка результата
  5. Если проблема осталась
  6. Безопасный откат

#Симптом и границы применимости

Малые файлы проходят, а большие зависают либо получают 413, 408, 499, 502 или 504. HTTP/2 сам по себе не отменяет ограничения размера и времени на Nginx, PHP и в приложении; нужно установить реальный уровень ошибки.

Эта инструкция относится к конкретному сайту в панели управления хостингом, когда его обслуживают Nginx, Apache, PHP-FPM или их сочетание. Названия разделов и доступность SSH зависят от установленной панели и прав пользователя; шаги, которых нет в вашем интерфейсе, выполняет администратор сервера.

#Возможные причины и признаки

Возможная причинаКак узнатьЧто делать
Лимит размераclient_max_body_size, ограничения приложения или PHP413 сразу после отправки заголовков/телаСопоставить размер с настроенным лимитом
Тайм-аут или обрыв потокаПрокси и сервер обрабатывают крупное тело дольше обычногоПауза, затем 408/499/504 или сбросСопоставить таймеры и журналы
Различия HTTP/1.1 и HTTP/2Клиент, промежуточный прокси или конфигурация имеют проблему протоколаЧерез --http1.1 работает, через --http2 нетПроверить версию, модули и промежуточный узел

#Пошаговая диагностика и исправление

  1. Повторите загрузку с двумя размерамиВозьмите два разрешённых тестовых файла, например 100 КБ и 10 МБ, без персональных данных. Через обычную форму проверьте оба, зафиксируйте размеры, момент прерывания и код ответа через F12 → «Сеть». Не загружайте исполняемые файлы.
  1. Сравните протоколыДля доступной тестовой конечной точки используйте curl с отдельными запросами HTTP/1.1 и HTTP/2. Не отправляйте существующий файл в не предназначенную для загрузки конечную точку. Сравнение протокола информативно только при одинаковых адресе, методе и теле запроса.
    Linux · Терминал (Bash)Команда
    На клиентском компьютере с curl, поддерживающим HTTP/2; это диагностические GET/HEAD-запросы, не проверка полной загрузки файла.
    curl -sS -I --http1.1 https://example.com/
    curl -sS -I --http2 https://example.com/
  1. Определите источник ограниченияВ панели сайта проверьте ограничения размера запросов и PHP. В SSH изучите client_max_body_size, а для PHP — upload_max_filesize и post_max_size веб-обработчика. Последнее значение должно учитывать и поля формы, не только вес самого файла.
  1. Проверьте тайм-ауты в журналеВремя ошибки сопоставьте с Nginx error_log и журналом PHP-FPM. 413 у Nginx отличается от PHP-ошибки загрузки; 504 может означать ожидание ответа приложения. Не увеличивайте все лимиты до бесконечности.
  1. Проверьте реально включённый HTTP/2Убедитесь, что установленные версии Nginx/OpenSSL поддерживают используемый синтаксис HTTP/2 и ALPN. У новых сборок применяется директива http2 on; в старых конфигурациях встречается listen ... http2. Не копируйте синтаксис без учёта версии.
  1. Измените только подтверждённый параметрЕсли выявлен лимит, установите разумное значение под предполагаемые файлы в нужном виртуальном хосте и соответствующем веб-обработчике. При подтверждённом обрыве — настройте тайм-аут по реальному времени обработки. Создайте резервную копию, проверьте синтаксис и обновите сервис штатно.
  2. SSH с административными правами; тестирует конфигурацию перед её применением
    Linux · Терминал (Bash)КомандаНужен sudo
    SSH с административными правами; тестирует конфигурацию перед её применением.
    sudo nginx -t
  1. Проверьте и большие, и запрещённые файлыЗагрузите большой разрешённый файл повторно через HTTP/2 и проверьте целостность результата. Убедитесь, что чрезмерный размер и недопустимые типы по-прежнему корректно отклоняются. Если ошибка остаётся только в одном браузере — проверьте его расширения и CDN.

#Проверка результата

Большой допустимый файл передаётся через HTTP/2 и сохраняется полностью, а ограничения безопасности остаются включёнными.

#Если проблема осталась

При 499 проверьте клиента и внешнюю сеть, при 504 — время ответа приложения, при 413 — конкретный лимит на каждом слое; не делайте вывод только по названию протокола.

#Безопасный откат

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

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.