Ошибка HTTP 413 Request Entity Too Large появляется, когда пользователь пытается загрузить на сервер слишком большой файл. Размер определяется относительно лимита, который установлен в конфигурации. Изменить его может только администратор сервера.
Что делать, если вы пользователь
Если вы видите ошибку 413, когда пытаетесь загрузить файл на чужом сайте, то вам нужно уменьшить размер передаваемых данных. Вот несколько ситуаций.
- Если вы пытались загрузить одновременно несколько файлов (форма позволяет так делать), попробуйте загружать их по одному.
- Если не загружается изображение, уменьшите его размер перед загрузкой на сервер. Можно сделать это с помощью онлайн-сервисов — например, Tiny PNG.
- Если не загружается видео, попробуйте сохранить его в другом формате и уменьшить размер. Можно сделать это с помощью онлайн-сервисов — я использую Video Converter.
- Если не загружается PDF-документ, уменьшите его размер. Можно сделать это с помощью онлайн-сервисов — я обычно использую PDF.io.
Универсальный вариант — архивация файла со сжатием. Ошибка сервера 413 появляется только в том случае, если вы пытаетесь одновременно загрузить слишком большой объем данных. Поэтому и выход во всех ситуациях один — уменьшить размер файлов.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Исправление ошибки сервера 413 владельцем сайта
Если вы владелец сайта, который при загрузке файлов выдает ошибку 413, то необходимо изменить конфигурацию сервера. Порядок действий зависит от используемых технологий.
Чтобы понять, что стало причиной ошибки, нужно посмотреть логи. Это поможет сэкономить время. Вот подробная инструкция, которая рассказывает, как посмотреть логи в панели управления Timeweb. В зависимости от того, какая информация будет в логах, вы поймете, как исправлять ошибку 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 добавьте или измените следующую строку:
client_max_body_size 20M;
Сохраните и закройте файл. Затем проверьте конфигурацию файла:
Перезагрузите сервер следующей командой:
После перезагрузки будет действовать новая конфигурация с увеличенным лимитом на размер загружаемого файла.
На Apache опция, устанавливающая максимально допустимый размер загружаемого файла, называется LimitRequestBody. По умолчанию лимит не установлен (равен 0).
На CentOS главный конфиг располагается по адресу /etc/httpd/conf/httpd.conf. На Debian/Ubuntu — по адресу /etc/apache2/apache2.conf.
Значение задается в байтах:
LimitRequestBody 33554432
Эта запись выставляет максимально допустимый размер 32 МБ.
Изменить конфиги можно также через панель управления. Я пользуюсь ISPmanager, поэтому покажу на ее примере.
- Раскройте раздел «Домены» и перейдите на вкладку «WWW-домены».
- Выберите домен, на котором появляется ошибка, и нажмите на кнопку «Конфиг».
Появится вкладка с конфигами Apache и Nginx. Вы можете редактировать их вручную, устанавливая лимит на размер загружаемого файла.
Исправление ошибки на WordPress
На WordPress ошибку можно исправить двумя способами.
Способ первый — изменение разрешенного размера в файле functions.php. Этот файл отвечает за добавление функций и возможностей — например, меню навигации.
- Откройте файловый менеджер.
- Перейдите в папку public.html.
- Откройте директорию wp-content/themes.
- Выберите тему, которая используется на сайте с WordPress.
- Скачайте файл functions.php и откройте его через любой текстовый редактор.
В панели управления на Timeweb можно также воспользоваться встроенным редактором или IDE — путь будет такой же, как указан выше: public.html/wp-content/themes/ваша тема/functions.php.
В конце файла functions.php добавьте следующий код:
@ini_set( 'upload_max_size' , '256M' ); @ini_set( 'post_max_size', '256M'); @ini_set( 'max_execution_time', '300' );
Сохраните изменения и загрузите модифицированный файл обратно на сервер. Проверьте, появляется ли ошибка 413.
Второй способ — изменение файла .htaccess. Это элемент конфигурации, который способен переопределять конфигурацию сервера в плане авторизации, кэширования и даже оптимизации. Найти его можно через файловый менеджер в папке public.html.
Скачайте файл на компьютер, на всякий случай сделайте резервную копию. Затем откройте .htaccess в текстовом редакторе и после строчки #END WORDPRESS вставьте следующий код:
php_value upload_max_filesize 999M php_value post_max_size 999M php_value max_execution_time 1600 php_value max_input_time 1600
Сохраните файл и загрузите его обратно на сервер с заменой исходного файла. То же самое можно сделать через встроенный редактор или IDE в панели управления Timeweb.
Исправление ошибки при использовании PHP-скрипта
Если файлы загружаются с помощью PHP-скрипта, то для исправления ошибки 413 нужно отредактировать файл php.ini. В нем нас интересуют три директивы.:
- upload_max_filesize — в ней указан максимально допустимый размер загружаемого файла (значение в мегабайтах);
- post_max_size — максимально допустимый размер данных, отправляемых методом POST (значение в мегабайтах);
- max_execution_time — максимально допустимое время выполнения скрипта (значение в секундах).
Например, если я хочу, чтобы пользователи могли загружать файлы размером до 20 МБ, то я делаю так:
max_execution_time = 90 post_max_size = 20M upload_max_filesize = 20M
Если все значения указаны верно, то файлы с допустимым размером будут загружаться на сервер без ошибок.
То же самое можно сделать через панель управления. Например, в ISPmanager порядок будет такой:
- Авторизуйтесь с root-правами.
- В левом меню раскройте раздел «Настройки web-сервера» и перейдите на вкладку «PHP».
- Выберите используемую версию и нажмите на кнопку «Изменить».
На экране появится список параметров. Они отсортированы по алфавиту. Установите необходимые значения для параметров max_execution_time, post_max_size и upload_max_filesize. Изменения применяются автоматически.
When building and maintaining a website, you’re bound to encounter some unexpected HTTP errors here and there. Problems like these are tough to avoid, and some are trickier to resolve than others.
If you’re experiencing a «413 Request Entity Too Large» error, the good news is that this issue is quick and simple to address — you just need to do a bit of server reconfiguration. And no, you don’t need to be a technical expert. Let’s learn how.
A 413 HTTP error code occurs when the size of a client’s request exceeds the server’s file size limit. This typically happens when a client attempts to upload a large file to a web server, and the server responds with a 413 error to alert the client.
Web servers place size limits on uploads to prevent users from overwhelming the server and exceeding storage permissions. This limit usually isn’t an issue, and common website files should stay well under it. However, especially large file uploads may occasionally exceed the limit, resulting in a message like this:
While you can reduce the size of your upload to get around the error, it’s also possible to change your file size limit with some server-side modification.
How to Fix a “413 Request Entity Too Large” Error
Your default upload size limit will depend on how your server is set up. In this guide, we’ll show you how to fix a 413 error by increasing your size limit with a WordPress setup, as well as with an Apache or Nginx server configuration.
All methods require some edits to your server files, so we recommend creating a backup before attempting the steps below.
WordPress
Themes and plugins are common causes of the 413 error with the WordPress content management system. Fortunately, there are several ways to increase your WordPress upload size limit enough to let these larger files through. As long as you do not exceed the limits of your hosting plan, you can try any of the following:
Modify PHP.ini
The easiest method to increase your upload limit is by modifying your server’s PHP.ini file. Here, you can change your limit through the cPanel interface without any coding. To do this:
1. In your cPanel menu, select MultiPHP INI Editor under Software.
2. In the window that appears, choose your domain from the dropdown menu.
3. Change the values of the following parameters to your preference:
- max_execution_time (maximum time to upload, in seconds)
- upload_max_filesize (maximum upload size, in megabytes)
- post_max_size (maximum post size, in megabytes)
4. When finished, click Apply.
Modify .htaccess
If your WordPress site is hosted on an Apache server, it’s also possible to increase your server’s limit via .htaccess, a file that contains many directives for the server. See the solution below.
Modify functions.php
You can also try increasing your size limit via the functions.php file of your current WordPress theme.
If you want to make this change permanent, we recommend trying the above approaches first. With this approach, you’ll need to update functions.php whenever you update or change your current theme.
1. In your cPanel menu, select File Manager under Files.
2. Navigate to the folder of your current theme inside your root WordPress directory (public_html by default). Open this theme file.
3. Select functions.php and click the Edit icon.
4. Copy the code below and paste it at the end of the file
@ini_set( ‘upload_max_size’ , ’64M’ );
@ini_set( ‘post_max_size’, ’64M’);
@ini_set( ‘max_execution_time’, ‘300’ );
5. Click Save.
This code sets the maximum allowed size of your WordPress uploads and posts to 64 megabytes. You can change this number to something larger or smaller if you need, as long as you do not exceed your hosting plan’s storage limit.
It also sets the maximum period your uploads can take to 300 seconds. Feel free to change this as well.
Nginx Server
Nginx server settings can be modified inside the file nginx.conf. Open this file and check for the directive client_max_body_size. Then, change the value (in megabytes) to your maximum file size preference.
If you do not see this directive in nginx.conf, you can add it to the end of a server, location, or http block like so:
server {
...
client_max_body_size 64M;
}
This allows for a 64-megabyte upload. Set this number to your preference, save the file, then reload Nginx for the change to take effect.
Apache Server
Change the size limit on an Apache server by updating your .htaccess file like so:
1. In your cPanel menu, select File Manager under Files.
2. In your root WordPress directory (public_html by default), locate .htaccess. Depending on your settings, the .htaccess file may be hidden.
3. Select .htaccess and click the Edit icon.
4. Copy and paste the code below at the bottom of your .htaccess file:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
5. Click Save and reload Apache.
Doing this sets the maximum allowed size of your WordPress uploads and posts to 64 megabytes and sets the maximum file upload time to 300 seconds. You can change both of these values to your preference.
Still getting a 413?
After trying one or more of the solutions above, you still may encounter a 413 error when uploading large files, even if these files are below your new size limit.
In this case, the issue may stem from your CDN’s servers or some other restriction set by your hosting provider. First, reach out to your hosting support, detailing the problem and the steps you’ve taken so far to resolve it. It may be that you’ve exceeded your plan’s file size limit without realizing. Or, your configurations may have inadvertently caused another error.
If you use a CDN to improve your site’s performance, this may also be the cause of your issue — the CDN servers you’re using may impose file size limits that are too small. Since you probably can’t modify these servers’ files directly, you consult the documentation for your CDN provider or contact product support to resolve the error.
If all else fails, consider uploading alternative files, reducing the size of your current file, or upgrading your storage plan. If you find yourself needing to upload a massive amount of data, more likely than not there’s a workaround.
Fixing a 413 Error
While HTTP errors can be frustrating, many are quickly solvable including a 413. By finding and tackling this issue now, you’ll have one less thing to worry about while building out your website. If your site allows users to upload their own content, changing your upload size limit solves this problem too — just make sure you’re not exceeding the limits set by your hosting plan.
As for the best option, we recommend WordPress users modify their server’s PHP.ini file first if possible, since this can easily be done through your hosting panel. Otherwise, choose the option that matches your server software.
This post was originally published in January 2021 and has been updated for comprehensiveness.
В редких случаях, но бывает, что во время загрузки больших файлов на веб-сайт возникает ошибка, которую возвращает веб-сервер 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 следует увеличить допустимый лимит. Увеличить размер тела запроса и соответственно, загружаемых файлов, можно путем использования 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/имя_файла_с_конфигурацией:
Когда ограничение на загрузку необходимо выставить только для конкретного раздела на сайте, строку client_max_body_size необходимо вписать в директиву location конфигурационного файла сайта, который по умолчанию находиться в /etc/nginx/sites-available/имя_файла_с_конфигурацией:
Как только были внесены изменения в конфигурационные файлы, сохраните их, закройте текстовый редактор и проверьте синтаксис конфигурационных файлов на наличие ошибок при помощи команды:
$ 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.
HTTP response status code 413 Payload Too Large is a client error that is returned by the server in cases where the client has initiated a request that contains a message body that is larger than the server is willing to accept for processing.
Usage
When the 413 Payload Too Large error message is received, it is because the client is sending a request that is too large. A common example is when a client tries to send a file to the server that is of an acceptable type and format but is too long. Pictures, for instance, may be of an unnecessarily high resolution and can be significantly smaller without impacting the intended use. Rather than take on the responsibility of modifying the image files, the server refuses the transfer and relies on the client to do the necessary processing.
In these situations, a client can check for file size allowance in advance of initiating the PUT by using the [[expect|Expect: 100-continue header]. The server will acknowledge and in response, the message body can be sent or not.
The server can optionally send a Retry-After header in the response. If this is the case, the client may attempt the request again after a specified period or specified time and date. For example, if the client has exceeded their upload quota for the week, or large uploads are not allowed during peak hours, the server will suggest that they try again at a more appropriate time.
If the situation occurs because the server is out of storage space then the server shall send the error message 507 Insufficient Storage instead.
The server can include the Connection: close
header to terminate the connection, preventing the client from sending the message body.
Note
Search engines like Google will not index a URL with 413 Payload Too Large response status, and consequently, URLs that have been indexed in the past but are now returning this HTTP status code will be removed from the search results.
Example
In the example, the client attempts to send a file and the server responds with 413 Payload Too Large because there is a lot of traffic at the moment. In response, the server denies the request, closes the connection, and suggests that the client try again after 30 minutes.
Request
PUT /docs HTTP/1.1
Host: www.example.ai
Content-Type: applications/pdf
Content-Length: 10000
Response
HTTP/1.1 413 Payload Too Large
Retry-After: 1800
Connection: close
Content-Type: text/html
Content-Length: 202
<html>
<head>
<title>File Too Large</title>
</head>
<body>
<p>There is too much server traffic to accept your transfer at this time. Please try again after 30 minutes.</p>
</body>
</html>
Code references
.NET
HttpStatusCode.RequestEntityTooLarge
Rust
http::StatusCode::PAYLOAD_TOO_LARGE
Rails
:request_entity_too_large
Go
http.StatusRequestEntityTooLarge
Symfony
Response::HTTP_REQUEST_ENTITY_TOO_LARGE
Python3.5+
http.HTTPStatus.REQUEST_ENTITY_TOO_LARGE
Java
java.net.HttpURLConnection.HTTP_ENTITY_TOO_LARGE
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_REQUEST_TOO_LONG
Angular
@angular/common/http/HttpStatusCode.PayloadTooLarge
Takeaway
The 413 Payload Too Large status code is a client error that is returned when a message-body is too large for the server to process. The connection may be closed, and the client may receive a Retry-After header if the problem is temporary.
See also
- Connection
- Retry-After
- RFC 7231
Last updated: June 2, 2022
Is your website showing a 413 request entity too large error? We are here to help you.
The 413 error simply means that the browser request was too large for the webserver to process.
Again, the fix for 413 request entity too large error involves modifying the size of the request body that the server accepts.
At Bobcares, we manage web servers for our customers as part of our Server Management Services.
Today, we’ll see how our Expert Engineers fix 413 errors in popular webservers like Apache, Nginx, and IIS.
Common scenarios of 413 request entity too large error
Let’s first have a quick look at the common scenarios that show the 413 error.
In general, most users experience the error while trying to upload files to the server.
For instance, in WordPress, it can happen during a theme or a plugin file upload using the WordPress dashboard. Or when a visitor tries to upload a large file, the error shows up as:
Similarly, the same error can appear while trying to restore a large WordPress backup too.
In a recent Helpdesk request, the customer reported the error as:
The upload page on my website shows the request entity is too large error. A reload will always fix it. Any clue how to prevent that issue?
What exactly causes a 413 error?
Now that we know the various scenarios of the error, we’ll see the reason for the error.
The 413 request entity too large error happens when the browser requests a very large file that the webserver cannot process. In other words, it means that the client’s HTTP request is too large for the server to handle.
For security reasons, every web server limits the size of the client request. This helps to avoid any resource abuse on the server.
For example, when any visitor tries to request a big file, it can even slow down the entire server. In many attacks, overloading the server with huge sized requests is a common method. When the request body is larger than the server allowed limit, it ends up in the 413 error.
How we fix 413 request entity too large error
The fix for 413 request entity too large error is to increase the maximum request size that a web server can process. This again varies depending on the type of web server that the website uses.
Having a decade of experience in managing various servers, let’s see how our Dedicated Engineers fix this error in different web servers.
In IIS web server
To resolve the 413 error in IIS, we increase the value of the “uploadReadAheadSize” parameter. This value determines the number of bytes that IIS will read to run the respective IIS module.
The steps for modifying applicationHost.config
on an IIS7 web server are:
- In IIS7, select the website.
- Then go to the “Configuration Editor“, in the drop-down menu, select “system.webServer“
- Select “serverRuntime“.
- Find “uploadReadAheadSize” and increase its value.
- Finally, click Apply.
Solution for 413 request entity too large error in Apache
Similarly, when the website runs on an Apache webserver, we edit the value of LimitRequestBody in the configuration.
Based on the setting, we modify it in either the httpd.conf file or in a local .htaccess file inside the website.
To restrict the Apache requests beyond 50MB, we set the value as:
LimitRequestBody 52428800
Then we do a config test, followed by a server reload.
service apache2 reload
Now the new value will be effective and the upload works fine.
Setting a value of 0 will allow any client request. But for security reasons, we never recommend it.
For Nginx webserver
Similarly, one of our customers came with a similar request on his Nginx server.
I have done a silly thing on my WordPress site and I need to reinstall my backup. However, I am getting an error message when I try to restore the site. The server responded with a “413 Request Entity Too Large”, please make sure that the server is not blocking our requests.
Here, we modified the value of the client_body_max_size directive in the Nginx configuration.
We opened the file at /usr/local/nginx/conf/nginx.conf
and then modify the value as
# set client body size to 50M # client_max_body_size 50M;
Then we restarted the Nginx server. This fixed the 413 Request Entity Too Large error.
Cross-checking PHP limits
In some cases, even if the webserver allows the client request size, often PHP limits on the website can throw up errors. Therefore, our Dedicated Engineers always cross verify the server limits for
- upload_max_filesize
- post_max_size
- max_execution_time
And, we modify the values either using .htaccess file or php.ini file depending on the website settings.
[Looking for a fix for a 413 error on your website. We are here to help you.]
Conclusion
To sum up, the 413 Request Entity Too Large error occurs when the client browser request is too large for the webserver to handle. Today, we saw how our Support Engineers modify the value of HTTP request size limit in IIS, Apache, and Nginx.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
var google_conversion_label = «owonCMyG5nEQ0aD71QM»;