Способы оплаты Abuse

Что означает ошибка 413 и как ее исправить

07.07.2024, 23:21

В редких случаях, но бывает, что во время загрузки больших файлов на  веб-сайт возникает ошибка, которую возвращает веб-сервер Nginx - 413 Request Entity Too Large. Ошибка появляется, при попытке загрузить на сервер слишком большой файл чем это разрешено на сервере. Дальше рассмотрим описание ошибки 413 Request Entity Too Large а также методы её исправления на стороне веб-сервера Nginx.

Что означает ошибка 413

Ошибка 413 или Request Entity Too Large расшифровывается как "объект запроса слишком велик" или простыми словами объем передаваемых данных слишком большой. Ошибка возвращается в случае, если сервер не может обработать запрос по причине слишком большого размера тела запроса (или большого файла). Снимок экрана с ошибкой изображен ниже:

По умолчанию в Nginx установлен лимит на размер тела запроса который равен 1 МБ. Если запрос превышает установленное значение, вы увидите ошибку 413 Request Entity Too Large.

Почему появляется ошибка

Ошибка 413 "Request Entity Too Large" возникает, когда веб-сервер отклоняет запрос из-за того, что размер тела запроса превышает максимально допустимый размер, установленный на сервере. Это означает, что данные, отправленные в запросе (например, при загрузке файла на сервер), слишком велики для обработки.

Решить проблему:

  1. Изменив настройки сервера: вы можете попытаться увеличить максимально допустимый размер запроса на сервере. Это может потребовать изменения конфигурационных файлов веб-сервера - Apache, Nginx.
  2. Сократив размер данных: если возможно, попробуйте сократить размер данных, отправляемых в запросе. Например, если вы загружаете файл, попробуйте уменьшить его размер.
  3. Использовав другие методы передачи данных: вместо одного большого запроса можно разделить данные на несколько более мелких и отправлять их по частям.
  4. Использовав другие методы передачи файлов: для передачи больших файлов можно воспользоваться специализированными сервисами для обмена файлами или FTP.

Если вы не управляете сервером, на который отправляете запрос, обратитесь к администратору сервера или технической поддержке для помощи в решении проблемы с ошибкой 413 "Request Entity Too Large".

Как исправить 

Для исправления ошибки 413 следует увеличить допустимый лимит. Увеличить размер тела запроса и соответственно, загружаемых файлов, можно путем использования client_max_body_size. Опциюя доступна для использования в директивах http, server или location в конфигурационном файле /etc/nginx/nginx.conf или в конфигурационном файле веб-сайта.

Откройте конфигурационный файл nginx.conf при помощи любого текстового редактора:

$ sudo nano /etc/nginx/nginx.conf

Вписываем строчку в секцию http:

$ client_max_body_size 100M

100 - максимальный размер файла в мегабайтах который можно загрузить на веб-сайт, в данном случае - 100 мегабайт. Если в распоряжении имеется несколько веб-сайтов и необходимо ограничить загрузку на все сайты сразу, то строку client_max_body_size необходимо вписываем в раздел блока http. 

Если ограничение на загрузку необходимо выставить только для конкретного сайта, то строку client_max_body_size необходимо добавить в блок server конфигурационного файла сайта, который по умолчанию находиться в /etc/nginx/sites-available/file_name_with_configuration:

Когда ограничение на загрузку необходимо выставить только для конкретного раздела на сайте, строку client_max_body_size необходимо вписать в директиву location конфигурационного файла сайта, который по умолчанию находиться в /etc/nginx/sites-available/file_name_with_configuration:

Как только были внесены изменения в конфигурационные файлы, сохраните их, закройте текстовый редактор и проверьте синтаксис конфигурационных файлов на наличие ошибок при помощи команды:

$ sudo nginx -t

Вы можете увидеть следующие строки:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Это означает что ошибок нет. В противном случае будет выведено описание ошибки, имя файла в котором найдена ошибка и номер строки. После внесения любых изменений в конфигурационные файлы Nginx их необходимо перезапустить при помощи команды:

$ sudo systemctl reload nginx

В этой статье рассмотрена ошибка в Nginx, известная 413 Request Entity Too Large, возникающая при загрузке больших файлов на веб-сайт. Помимо описания самой ошибки также было описаны шаги по устранению ошибки путем редактирования конфигурационных файлов Nginx.