Ошибка 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.