Если вы используете Nginx на своем веб-сервере, то при попытке загрузить большие файлы вы можете столкнуться с ошибкой 413 Request Entity Too Large. Эта ошибка обычно возникает, когда вы превышаете ограничение client_max_body_size, которое по умолчанию в Nginx равно 1 МБ. Например, вы можете увидеть эту ошибку при загрузке 10-мегабайтного PDF-файла или 50-мегабайтного видео. К счастью, решение довольно простое: достаточно настроить соответствующий параметр.
Поймите причину ошибки
Nginx проверяет размер тела запроса от клиента. Если этот размер превышает значение client_max_body_size, сервер сразу возвращает ошибку 413. Этот параметр может быть определен в основном конфигурационном файле nginx.conf, в конкретном блоке server или в блоке location. В зависимости от того, на каком уровне он задан, может потребоваться изменить его в соответствующем месте.
Измените параметр client_max_body_size
Первым делом откройте конфигурационный файл Nginx. Обычно он находится по пути /etc/nginx/nginx.conf или /etc/nginx/sites-available/default. Откройте файл текстовым редактором и найдите строку, подобную этой:
client_max_body_size 1M;Если такой строки нет, её нужно добавить. Например, чтобы разрешить загрузку файлов до 100 МБ, измените строку следующим образом:
client_max_body_size 100M;Настройка внутри блока server
Если вы хотите изменить ограничение только для конкретного сайта, добавьте эту строку внутрь соответствующего блока server. Например:
server { listen 80; server_name hosting.example.com; client_max_body_size 100M; ... }Настройка внутри блока location
Для ещё более точной настройки можно задать отдельные ограничения для определённых URL-путей. Например, чтобы разрешить загрузку до 200 МБ в каталог /uploads:
location /uploads { client_max_body_size 200M; }Проверьте конфигурацию и перезапустите Nginx
После внесения изменений в конфигурационный файл проверьте синтаксис на наличие ошибок:
sudo nginx -tЕсли проверка прошла успешно, перезапустите Nginx:
sudo systemctl restart nginxТеперь можно снова попробовать загрузить файл.
Совместимость с PHP-FPM
Если вы используете приложение на PHP, не забывайте, что в PHP тоже есть свои ограничения на загрузку. Проверьте параметры upload_max_filesize и post_max_size в файле php.ini. Обычно рекомендуется устанавливать те же значения, что и в Nginx. Например:
upload_max_filesize = 100M post_max_size = 100MПосле изменений не забудьте перезапустить PHP-FPM.
Финальные проверки и советы
В некоторых случаях, если вы используете обратный прокси или CDN, у них тоже могут быть подобные ограничения. Кроме того, увеличение параметра client_body_buffer_size может улучшить производительность. Однако помните, что слишком большие значения могут нагрузить ресурсы сервера. Обычно достаточно значений от 10 МБ до 100 МБ. После всех настроек вы больше не должны видеть ошибку 413.