WordPress Linux

WordPress: ошибка HTTP при загрузке изображений в медиатеку

  • Обновлено
  • Чтение ≈ 4 минуты

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

Ошибка HTTP при загрузке картинки в WordPress, вызванная прокси, сервером или безопасностью: проверьте mod_security, лимиты nginx, CDN и Cloudflare, плагины безопасности, журнал сервера и откройте загрузку через вкладку «Браузерный загрузчик».

В этой статье
  1. Что отличает эту ошибку
  2. Причины
  3. Диагностика по коду ответа
  4. Решение для администраторов без доступа к серверу
WordPress image upload HTTP error
Ошибка HTTP при загрузке / 413 Request Entity Too Large / 403 Forbidden
По-русскиЗагрузка блокируется сервером, WAF или прокси.

#Что отличает эту ошибку

Здесь запрос на загрузку отклоняется на уровне веб-сервера, WAF, CDN или плагина безопасности ещё до обработки WordPress. В браузере в консоли (F12 → вкладка «Network») при этом виден код ответа: 413 (слишком большое тело запроса), 403 (запрещено правилом mod_security или плагином), 502/504 (сбой/таймаут прокси), 500 (ошибка PHP). Код ответа сразу указывает, где искать причину, поэтому начните с него.

#Причины

Возможная причинаКак узнатьЧто делать
Лимит nginx 1 МБЗначение по умолчанию.413 на файлы больше 1 МБ.client_max_body_size.
ModSecurity или WAFПравило срабатывает.403 на загрузку.Попросите хостинг исключить правило.
Плагин безопасностиWordfence и др.Блокирует.Отключите проверку или добавьте исключение.
Cloudflare или CDNЛимит запроса.413/520.Загружайте напрямую по IP или настройте правила.
Таймаут PHP-FPM или проксиДолгая обработка.502/504.Увеличьте таймауты.
Расширение браузераБлокировщик.Только в одном браузере.Отключите расширения.

#Диагностика по коду ответа

  1. Откройте инструменты разработчикаВойдите в WordPress и откройте «Медиафайлы → Добавить новый». В Chrome/Edge нажмите F12 → «Сеть» (Network), включите сохранение журнала, попробуйте загрузить небольшую копию проблемного файла. Найдите запрос загрузки (часто async-upload.php либо запрос REST API — зависит от версии и интерфейса). Не публикуйте HAR-файл: в нём могут быть cookies и токены администратора.
  2. Посмотрите код ответа и тело ответаНажмите на запрос в инструментах разработчика и откройте «Заголовки» и «Ответ». Запишите HTTP-статус и короткую обезличенную часть ответа. 413 относится к размеру, 403 — к правилам доступа, 500 — к приложению, 502/504 — к связи с backend. Ошибка JavaScript в браузере — отдельный случай. Перед правкой конфигурации сопоставьте статус с серверным error.log.
  3. 413: увеличьте client_max_body_size в nginx и post_max_size в PHPЕсли сервер вернул 413, проверьте фактический размер файла и настройки веб-сервера/веб-PHP. Для Nginx проверьте client_max_body_size, для PHP — upload_max_filesize и post_max_size (последнее должно быть больше первого). Сохраните конфигурацию и поднимайте предел только до согласованного значения; после nginx -t примените reload. Перепроверьте загрузку того же файла.
  4. 403: проверьте mod_security, Wordfence и правила WAFЕсли ответ 403, откройте журнал WAF/ModSecurity, прокси или плагина Wordfence и найдите событие по времени/URL. Запишите идентификатор правила и причину; если блокировка ошибочна, создайте узкое исключение для конкретной операции через штатный интерфейс. Не отключайте весь брандмауэр и не ставьте открытые права 777 на каталог загрузок.
  5. 502/504: увеличьте таймауты прокси и PHP-FPMПри 502/504 проверьте error.log Nginx и журнал PHP-FPM: upstream timed out, connect() failed, pm.max_children указывают на разные причины. Сначала устраните остановку пула, ошибку скрипта или перегрузку, а не повышайте все таймауты. Если задача действительно долгая, после оценки ресурсов допустимо менять fastcgi_read_timeout для конкретного маршрута с проверкой nginx -t и возможностью отката.
  6. 500: проверьте журнал ошибок PHPПри HTTP 500 откройте журнал ошибок PHP для данного домена в панели хостинга либо через SSH по действительному пути. Воспроизведите загрузку и найдите строку Fatal error, Allowed memory size exhausted или ошибку Imagick/GD. Проверьте поддержку формата и расширения PHP. Не выводите подробные ошибки на публичной странице; исправления проверяйте сначала на тестовой копии.
  7. Проверьте ограничения сети доставки и защитных правилЕсли перед сайтом работает Cloudflare или другая сеть доставки содержимого, найдите в их панели события WAF и ограничения размера запроса для вашего тарифа: лимиты меняются, проверяйте текущую документацию провайдера. Если файл превышает допустимый размер, уменьшите его либо используйте штатную загрузку непосредственно на исходный сервер с контролем доступа; не обходите защиту ради неизвестного файла.
  8. Попробуйте «Браузерный загрузчик»Для диагностики в WordPress откройте «Медиафайлы → Добавить новый» и, если интерфейс предлагает альтернативную форму загрузки, воспользуйтесь ею. Она может помочь различить ошибку сценария браузера и серверное ограничение, но не обойдёт 413/500. После одной успешной загрузки убедитесь, что файл доступен в медиатеке, миниатюры созданы и в журнале нет новых ошибок.
  9. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Разрешить большие загрузки и увеличить таймауты (в блоке server или http)
    NginxКоманда
    Разрешить большие загрузки и увеличить таймауты (в блоке server или http)
    client_max_body_size 64M;
    fastcgi_read_timeout 300;
    proxy_read_timeout 300;
    Вариант 2Применить конфигурацию nginx после проверки
    Linux · Терминал (Bash)Команда
    Применить конфигурацию nginx после проверки
    nginx -t
    systemctl reload nginx
    Вариант 3Журналы веб-сервера и ModSecurity
    Linux · Терминал (Bash)Команда
    Журналы веб-сервера и ModSecurity
    tail -n 50 /var/log/nginx/error.log
    grep -i "modsecurity" /var/log/apache2/error.log | tail -20
    Вариант 4Отключить правило ModSecurity для загрузки (только если его установка разрешена хостингом и вы уверены; при…
    ТекстКоманда
    Отключить правило ModSecurity для загрузки (только если его установка разрешена хостингом и вы уверены; пример)
    # При подтверждённом ложном срабатывании WAF исключение создают для конкретного правила и маршрута
    # через управляющую панель; не отключайте ModSecurity глобально.
    Вариант 5Проверка ответа сервера на загрузку (замените адрес; код ответа должен быть 200 или 302 при авторизации)
    Linux · Терминал (Bash)Команда
    Проверка ответа сервера на загрузку (замените адрес; код ответа должен быть 200 или 302 при авторизации)
    curl -I https://example.ru/wp-admin/async-upload.php

#Решение для администраторов без доступа к серверу

Если вы на общем хостинге и не можете менять конфигурацию, обратитесь в поддержку и пришлите время запроса и код ответа. Для временного обхода используйте FTP-загрузку: положите файлы в wp-content/uploads/год/месяц/ и добавьте их в медиатеку плагином «Add From Server» или командой WP-CLI wp media import.

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

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

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