Поиск по сайту:

Ошибка 413 Request Entity Too Large — простое решение

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

Увеличение размера загружаемого файла для всех блоков сервера

Если у вас есть несколько веб-сайтов (серверных блоков) на одном сервере Nginx и вы хотите увеличить размер загружаемого файла для всех из них. Затем вам нужно отредактировать файл nginx.conf.

sudo vi /etc/nginx/nginx.conf

Поместите следующий текст в раздел http

client_max_body_size 2M;

Приведенная выше директива Nginx означает, что максимальный размер файла для загрузки составляет 2 мегабайта. Значение по умолчанию — 1М. Поэтому, если вы не укажете его и загрузите файл размером более 1 мегабайта, вы получите слишком большую ошибку 413 requestentity. Вы можете изменить это значение по своему вкусу.

Сохраните и закройте файл. Затем перезагрузите конфигурацию Nginx. Вам не нужно перезапускать Nginx.

sudo systemctl reload nginx

или

sudo /etc/init.d/nginx reload

Увеличение размера загружаемого файла для одного блока сервера

Если вы хотите увеличить размер загружаемого файла для одного блока сервера, вам необходимо отредактировать файл блока сервера. На сервере Debian/Ubuntu:

sudo vi /etc/nginx/sites-available/yourdoman.com

На сервере CentOS/Redhat:

sudo vi /etc/nginx/conf.d/yourdomain.com.conf

И добавьте следующую строку в раздел сервера. Опять же, вы можете изменить значение в соответствии с вашими потребностями.

client_max_body_size 2M;

Теперь перезагрузите конфигурацию Nginx.

Загрузка файлов размером более 2 мегабайт

Обратите внимание, что PHP также устанавливает ограничение на размер загружаемого файла. Максимальный размер файла для загрузки по умолчанию составляет 2 МБ. Поэтому, когда вы загружаете файл размером более 2M, вы получаете эту ошибку.

The uploaded file exceeds the upload_max_filesize directive in php.ini.

тогда вам нужно изменить значение в PHP. Отредактируйте файл php.ini. В Debian/Ubuntu:

sudo vi /etc/php5/fpm/php.ini

В CentOS/Redhat:

sudo vi /etc/php.ini

Найдите следующую строку:

upload_max_filesize = 2M

Измените значение на то же значение, что и размер загружаемого файла Nginx. Также найдите следующую строку и увеличьте значение по своему вкусу.

post_max_size = 8M

Сохраните и закройте файл. Затем перезагрузите php-fpm.

sudo service php-fpm reload       or         sudo systemctl reload php-fpm

В вашей системе может быть php5-fpm или php7.0-fpm вместо php-fpm.

Проверяем, установлено ли оно уже

Прежде чем устанавливать значение client_max_body_size в Nginx, целесообразно проверить, не установлено ли это значение, но вы об этом не знаете. Измените рабочий каталог на /etc/nginx/ и выполните следующую команду:

sudo grep -R 'client_max_body_size'

Приведенная выше команда найдет директиву во всех файлах в вашем каталоге конфигурации Nginx. Вы также можете напрямую открыть файл блока сервера sudo vi /etc/nginx/conf.d/filename.conf и проверить, установило ли уже этот блок сервера значение.

Переопределение

Если вы укажете значение client_max_body_size как в файле nginx.conf, так и в файле блока сервера, то значение в файле блока сервера переопределяет значение, установленное в файле nginx.conf.

Статьи по данной тематике