nginx 413 request entity too large как исправить
Как исправить ошибку 413 Request Entity Too Large
При загрузке файла в свой блог, столкнулся с ошибкой «413 Request Entity Too Large». Быстрое гугление показало, что для исправления, нужно чуть поднастроить веб-сервер..
Что означает ошибка «413 Request Entity Too Large»
Ошибка » 413 Request Entity Too Large » переводится как «Размер запроса слишком большой» возникает когда размер запроса от клиента превышает максимальные ограничения установленные для обработки на стороне веб-сервера. Такие ограничение применяют для защиты от атак направленных на увеличение нагрузки на веб-сервер.
Например, в моем случае, я попытался загрузить gif-ку размер которой был около 2 мб. Соответственно мой браузер отправил POST запрос на веб-сервер, примерно такого же размера. В результате я получил ошибку «R equest entity too large » от веб-сервера, о том, что мой запрос слишком большой для дальнейшей обработки.
Как исправить ошибку «413 Request Entity Too Large» со стороны клиента
Самый простой способ, это уменьшить размер запроса. Тут многое зависит от того, что именно вы отправляете на сервер.
Если это форма с несколькими файлами, попробуйте загружать файлы по одному.
Если это какие-то документы и есть возможность, попробуйте их заархивировать.
Если это картинка, попробуйте её сохранить в другом формате, например уменьшить разрешение и сохранить в JPG.
Как исправить ошибку «413 Request Entity Too Large» на стороне Nginx веб-сервера
Разумеется, можно поправить конфигурацию веб-сервера, если у вас есть к ней доступ, чтобы избежать таких ошибок в дальнейшем.
В nginx, за это отвечает опция client_max_body_size: http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
Значение по-умолчанию: 1Мб
Данную опцию можно использовать в следующих контекстах: http, server, location. Т.е. можно задать глобальное значение, значение для домена и значение для конкретного адреса url.
Я решил увеличить глобальное значение, т.к. это исправит проблему сразу для нескольких блогов, расположенных в рамках одного сервера.
Для этого добавляем нужное значение (в моем случае это 16 Мб) в главный файл конфигурации
Ошибка 413 Request Entity Too Large: что это за ошибка и как ее исправить
Ошибка HTTP 413 Request Entity Too Large появляется, когда пользователь пытается загрузить на сервер слишком большой файл. Размер определяется относительно лимита, который установлен в конфигурации. Изменить его может только администратор сервера.
Что делать, если вы пользователь
Если вы видите ошибку 413, когда пытаетесь загрузить файл на чужом сайте, то вам нужно уменьшить размер передаваемых данных. Вот несколько ситуаций.
Универсальный вариант — архивация файла со сжатием. Ошибка сервера 413 появляется только в том случае, если вы пытаетесь одновременно загрузить слишком большой объем данных. Поэтому и выход во всех ситуациях один — уменьшить размер файлов.
Исправление ошибки сервера 413 владельцем сайта
Если вы владелец сайта, который при загрузке файлов выдает ошибку 413, то необходимо изменить конфигурацию сервера. Порядок действий зависит от используемых технологий.
Увеличение разрешенного размера для загрузки файлов на Nginx и Apache
На Nginx максимально допустимый размер файла задан в параметре client_max_body_size. По умолчанию он равен 1 МБ. Если запрос превышает установленное значение, пользователь видит ошибку 413 Request Entity Too Large.
Параметр client_max_body_size находится в файле nginx.conf. Для его изменения нужен текстовый редактор — например, vi.
Подключитесь к серверу через SSH и выполните в консоли следующую команду:
Во встроенном редакторе vi откроется файл nginx.conf. В разделе http добавьте или измените следующую строку:
Сохраните и закройте файл. Затем проверьте конфигурацию файла:
Перезагрузите сервер следующей командой:
После перезагрузки будет действовать новая конфигурация с увеличенным лимитом на размер загружаемого файла.
На Apache опция, устанавливающая максимально допустимый размер загружаемого файла, называется LimitRequestBody. По умолчанию лимит не установлен (равен 0).
На CentOS главный конфиг располагается по адресу /etc/httpd/conf/httpd.conf. На Debian/Ubuntu — по адресу /etc/apache2/apache2.conf.
Значение задается в байтах:
Эта запись выставляет максимально допустимый размер 32 МБ.
Изменить конфиги можно также через панель управления. Я пользуюсь ISPmanager, поэтому покажу на ее примере.
Появится вкладка с конфигами Apache и Nginx. Вы можете редактировать их вручную, устанавливая лимит на размер загружаемого файла.
Исправление ошибки на WordPress
На WordPress ошибку можно исправить двумя способами.
Способ первый — изменение разрешенного размера в файле functions.php. Этот файл отвечает за добавление функций и возможностей — например, меню навигации.
В панели управления на Timeweb м ожно также воспользоват ься встроенным редактором или IDE — путь будет такой же, как указан выше: public.html/wp-content/themes/ваша тема/functions.php.
В конце файла functions.php добавьте следующий код:
Сохраните изменения и загрузите модифицированный файл обратно на сервер. Проверьте, появляется ли ошибка 413.
Сохраните файл и загрузите его обратно на сервер с заменой исходного файла. То же самое можно сделать через встроенный редактор или IDE в панели управления Timeweb.
Исправление ошибки при использовании PHP-скрипта
Если файлы загружаются с помощью PHP-скрипта, то для исправления ошибки 413 нужно отредактировать файл php.ini. В нем нас интересуют три директивы.:
Например, если я хочу, чтобы пользователи могли загружать файлы размером до 20 МБ, то я делаю так:
Если все значения указаны верно, то файлы с допустимым размером будут загружаться на сервер без ошибок.
То же самое можно сделать через панель управления. Например, в ISPmanager порядок будет такой:
На экране появится список параметров. Они отсортированы по алфавиту. Установите необходимые значения для параметров max_execution_time, post_max_size и upload_max_filesize. Изменения применяются автоматически.
Ошибка 413 Request Entity Too Large — как исправить?
Данная ошибка больше интересует вебмастеров, т.к. связана напрямую с настройками сервера и 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 как исправить
Ошибка HTTP 413 (Request Entity Too Large Error) означает, что клиент отправил слишком большой запрос на сервер.
Ошибка может возникать при отправке серверу запросов большого объёма (загрузке файлов, к примеру).
При работе с WordPress появляется довольно часто.
Одна из причин — это дефолтные настройки nginx, а точнее параметра client_max_body_size, который по умолчанию равен 1m, то-есть появляется при загрузке файлов больше 1 мегабайта.
Вообще дефолтные настройки – это всегда плохо…
Вот, что по этому поводу говорится на сайте nginx:
Задаёт максимально допустимый размер тела запроса клиента, указываемый в поле “Content-Length” заголовка запроса. Если размер больше заданного, то клиенту возвращается ошибка 413 (Request Entity Too Large).
Следует иметь в виду, что браузеры не умеют корректно показывать эту ошибку. Установка параметра размер в 0 отключает проверку размера тела запроса клиента.
Решение проблемы nginx «413 Request Entity Too Large»
где, 100M — максимальный объём запроса (файла). В данном случае — 100 мегабайт. Приставка M — мегабайты, G — гигабайты. В принципе можно задать и больше, например 512мб.
Директива client_max_body_size задаёт максимально допустимый размер тела запроса клиента, указываемый в строке «Content-Length» в заголовке запроса. Если размер больше заданного, то клиенту возвращается ошибка «Request Entity Too Large» (413). Следует иметь в виду, что браузеры не умеют корректно показывать эту ошибку. Подробнее.
Решение
Комментарии 
у Apache есть директива LimitRequestBody
если не нашли то причина скорей всего не в ней, потому что по умолчанию ограничения отсутствуют, хотя можете попробовать 🙂 если не поможет то придётся погуглить 😉
Этой строчки у меня в nginx 0.6.75 не было.
Добавил, перезапустил сервер, все нормально пошло, файлы грузятся больше 1 мб, а я блин голову с php.ini ломал 😉
а где находиться этот nginx. пожалуйста, опишите путь подробно. за ранее спасибо
спросите у хостера
обычно конфиг лежит в /etc/nginx/nginx.conf
Всё круто, помогло. Спасибочки!
Спасибо! Этот блог рулит 🙂
Спасибо, тоже помогло, но я ещё nginx перезапускал:
service nginx restart
Спасибо, тоже помогло, но nginx не перезапускал — перезагрузил весь сервер
а можно через htaccess?
Ни кто не сталкивался если директива не помогла?
Должна помочь если nginx 0.7.65 (у меня nginx-0.8.54-1.el5 помогло я еще настройки в php делал)
Данная ошибка больше интересует вебмастеров, т.к. связана напрямую с настройками сервера и 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 Error» на Nginx / Apache
Это часто происходит, когда запрос, сделанный клиентом, слишком велик и не может быть обработан веб-сервером.
Измените максимальные значения загрузки PHP
Откройте файл конфигурации PHP. например, /etc/php.ini и изменить максимальные пределы загрузки для файлов.
Вы также можете настроить максимальное время выполнения и ограничение памяти для скриптов PHP.
Установить размер body клиента – Nginx
Откройте файл конфигурации Nginx.
Это может быть глобальный файл nginx.conf или файл конфигурации сайта.
Установите размер тела клиента.
Затем перезапустите nginx и php-fpm – команды перезапуска могут отличаться.
Установите директиву LimitRequestBody – Apache
Если ваш веб-сервер Apache, установите директиву LimitRequestBody.
Используйте калькулятор Megabytes to Bytes, чтобы получить нужные значения.
Перезапустите веб-сервер Apache, когда закончите
Теперь вы решили ошибку «413 Request Entity Too Large Error».
Попробуйте снова загрузить файл, и попытка должна быть успешной.