Содержание
Ошибка HTTP 413 (Request Entity Too Large Error) означает, что клиент отправил слишком большой запрос на сервер.
Ошибка может возникать при отправке серверу запросов большого объёма (загрузке файлов, к примеру).
При работе с WordPress появляется довольно часто.
Одна из причин — это дефолтные настройки nginx, а точнее параметра client_max_body_size, который по умолчанию равен 1m, то-есть появляется при загрузке файлов больше 1 мегабайта.
Вообще дефолтные настройки — это всегда плохо…
Вот, что по этому поводу говорится на сайте nginx:
Синтаксис: | client_max_body_size размер; |
---|---|
Умолчание: | |
Контекст: | http , server , location |
Задаёт максимально допустимый размер тела запроса клиента, указываемый в поле “Content-Length” заголовка запроса. Если размер больше заданного, то клиенту возвращается ошибка 413 (Request Entity Too Large).
Следует иметь в виду, что браузеры не умеют корректно показывать эту ошибку. Установка параметра размер в 0 отключает проверку размера тела запроса клиента.
Решение проблемы nginx «413 Request Entity Too Large»
В файл nginx.conf, в секцию http , добавить/изменить:
где, 100M — максимальный объём запроса (файла). В данном случае — 100 мегабайт. Приставка M — мегабайты, G — гигабайты. В принципе можно задать и больше, например 512мб.
Данная ошибка больше интересует вебмастеров, т.к. связана напрямую с настройками сервера и nGinx. В статье исчерпывающая информация по данной ошибке с разбором действий по устранению ошибки 413. В каких случаях возникает ошибка 413? Как исправить ошибку 413 в сжатые сроки? Опыт вебмастеров, которые решили проблему.
Что такое ошибка HTTP 413?
Ошибка 413 — Request Entity Too Large говорит о том, что файл, который вы пытаетесь загрузить на сервер слишком большой для заданной конфигурации сервера. Обычно проблема возникает среди вебмастеров, которые создают свой первый сайт на базе CMS и при этом вообще не разбираются в коде. Как результат – не настроен сервер для обработки и загрузки изображений.
Обратите внимание, что в отличии от ошибки 409, здесь указана конкретная проблема. Здесь нет конфликта между настройками сервера. Нужно просто изменить переменные в настройках, если они доступны для вас в панели управления вашим хостинг аккаунтом.
Вебмастера могут столкнуться с ошибкой 413 Request Entity Too Large при использовании: NGINX, Apache, PHP. Чтобы устранить ошибку 413 нужно внести изменения в настройки, которые приведены ниже. Для этого вам понадобиться доступ к настройкам сервера или придется писать в поддержку хостинга, чтобы они внесли такие изменения (если вам не доступно).
По умолчанию, размер, который разрешен для загрузки – 1 мб. У меня на всех сайтах стоит 32 мб. Для пользователей размер установлен в рамках 4 мб., при этом в случае загрузки изображений на сайт, система автоматически их сжимает. Ниже представлены функции и их местонахождение.
Как исправить ошибку 413?
Если у вас NGINX
В дефолтных (стандартных) настройках стоит ограничение в 1 мб. За размер отвечает функция «client_max_body_size». Данная настройка указывает допустимый размер запроса в строке «Content-Length». В случае, когда размер больше 1 мб., возвращается ошибка 413 Request Entity Too Large.
Для решения ищем файл «nginx.conf», а в нем пункт http, где нужно добавит или изменить указанный выше размер функции. Исправляем ошибку 413 примерно вот так:
В данном случае – 64м, это уже измененный допустимый размер, который ранее был 1м. Слишком много не стоит устанавливать, если в этом нет нужды. Почему? Уже не первый раз замечаю, что при больших объемах затрачивается много оперативной памяти и процессорных минут, что может привести к «диалогу» с администрацией хостинга. После установки параметров не забудьте перезагрузить конфиг.
Если у вас PHP
Не всегда все упирается в настройки сервера, но и в настройки PHP. Вне зависимости от версии PHP для изменения допустимого размера загружаемых фалов через PHP скрипты нужно найти файл php.ini. Этот файл обычно находится в папке «etc». Открываем встроенным редактором (если есть) или текстовым редактором, вроде Notepad++. Ищем строки, которые указаны ниже:
И устанавливаем в этих строках нужные вам размеры. Например, 8М – это и есть 8 мб. Для скриптов крайне противопоказано устанавливать разрешения на загрузку больших файлов. Также не стоит разрешать загружать произвольные файлы. В случае, если сайтом заинтересован злоумышленник, он легко сможет залить файлы на сайт, которые вам не понравятся.
Если у вас Apache
В отличии от примеров выше, в Apache размер указывается в байтах. Файл для редактирования находится по следующему адресу: /etc/httpd/conf/httpd.conf или /etc/apache/apache.conf. В файле нужно найти и изменить пункт «LimitRequestBody. Ниже пример.
В данной строчке лимит, который вы задаете – 1048576 или 8 МБ. Никаких букв после цифр ставить не нужно.
Для пользователей
Если вы загружаете фотографию или аватарку на сайт и он выдает ошибку 413, вы решить этот вопрос не сможете, разве только уменьшив размер файла. Помните, что стандартный размер – 1 мб, а значит, если сайт не принимает ваше фото или файл, просто уменьшите его до 1 Мб.
Описание ошибки
413 Request Entity Too Large
Данная ошибка может появиться в том случае, если вы загружаете какой-либо файл на сервер и размер этого файла превышает максимально разрешенный в конфиге в веб-сервера (например, в nginx по умолчанию установлено ограничение в 1 МБ). Для того, чтобы это исправить, необходимо внести определенные правки в файл конфигурации, который может быть разным, в зависимости от используемого веб-сервера. Ниже будут приведены примеры для самых популярных веб-серверов:
nginx
Максимальный размер файла указывается параметром client_max_body_size . Поэтому, достаточно прописать параметр и новое значение в любой конфиг, который использует nginx для сайта, на котором у вас появилась эта проблема. Получится должно что-то примерно следующее:
Где 4m — это 4 Мб. Для установки лимита в 32 Мб, надо соответственно написать client_max_body_size 32m , и т. д.
После изменения настроек нужно обязательно перезагрузить конфиг в nginx.
Apache
Размер файла, допустимого для заливки, можно отрегулировать в главном конфиге Apache, который можно найти по адресу /etc/httpd/conf/httpd.conf (в CentOS) или /etc/apache2/apache2.conf (в Debian/Ubuntu). Задается он параметром LimitRequestBody , и ему можно прописать любое нужное значение в байтах. Например, так выглядит ограничение в 32 МБ:
Для применения настроек нужно перезагрузить веб-сервер Apache.
Если при заливке файла используется PHP скрипт, то для PHP имеются отдельные настройки максимального размера файла. Для их изменений потребуется внести правку в файл php.ini, который расположен по адресу /etc/ /fpm. Открываем его любым текстовым редактором и находим следующие строки:
И выставляем им нужные значения, например 4M (т. е. 4 МБ).
После внесения правок просто перезагружаем php, и проверяем работу.