Как увеличить client_max_body_size в nginx.conf?

Я получаю ошибку «413 Request Entity Too Large» при загрузке больших файлов в мой локальный экземпляр ddev, особенно при восстановлении из большого файла базы данных с помощью резервного копирования и миграции.

Я использую ddev 1.5.1, PHP 7.1, nginx 1.15.3 и Drupal 7.60. Я попытался предоставить настраиваемую конфигурацию nginx, как сказано в документации, но ничего из того, что я пробовал, не сработало. Судя по поиску в Google, я думаю, что проблема в том, что client_max_body_size слишком мало, но я попытался удвоить это значение, но ничего не сработало. Я скопировал конфигурацию d7, добавил строку client_max_body_size и перезапустил проект, но все равно получаю сообщение об ошибке.


person Jake Ineichen    schedule 08.01.2019    source источник


Ответы (2)


Во-первых, из-за этой проблемы вы действительно не хотите использовать backup_migrate для восстановления, особенно для загрузки 100 МБ, что очень много. ddev import-db с радостью принимает ваш файл backup_migrate * .mysql.gz, он работает намного быстрее и не требует специальной конфигурации. ddev import-db --src=/path/to/my-backup-migrate.mysql.gz

Но чтобы сделать это так, как вы пытаетесь сделать, вам нужно переопределить nginx-site.conf И php.

В вашем .ddev / nginx-site.conf в разделе "server" добавьте client_max_body_size 1000M;, если вы хотите увеличить его до 1 ГБ. (См. настраиваемую конфигурацию nginx в документации.

В .ddev / php / bigpost.ini (имя произвольное, см. docs) вам понадобится:

post_max_size = 1000M
upload_max_filesize = 1000M

Затем ddev rm и ddev start, и вы должны увидеть, что размер загрузки увеличился.

person rfay    schedule 08.01.2019
comment
Я не понимал, что могу импортировать файл backup_migrate с помощью команд ddev. Это очень полезно. Я буду делать это вместо использования графического интерфейса. Что касается других ваших предложений, я действительно изменил эти ограничения размера php с помощью настраиваемого файла .ini, и я все еще получаю ошибку, поэтому я не уверен, в чем проблема. - person Jake Ineichen; 10.01.2019
comment
Вы должны выполнить оба nginx-site.conf и php; тогда вам нужно ddev rm и ddev start. Я попробовал это, и он отлично проявил себя в ограничении максимального размера на странице резервного копирования и миграции. Но вам будет лучше использовать ddev import-db. - person rfay; 10.01.2019
comment
Я сделал и то, и другое, перезапустил контейнер, попытался удалить и запустить и т. Д., Но все еще не мог заставить его работать. Но с этого момента я буду делать ddev import-db. Спасибо! - person Jake Ineichen; 10.01.2019

Сегодня я столкнулся с той же проблемой, когда пытался отладить некоторые длительные загрузки файлов TUS. По-видимому, проблема не обязательно в веб-контейнере ddev, а в контейнере nginx ddev-router. Здесь размер запроса также ограничен 100 м (client_max_body_size 100 м).

Вы можете временно обойти эту проблему, выполнив следующие действия: - ssh в контейнер ddev-router - отредактируйте /app/nginx.tmpl и установите более высокий клиент max_body_size - перезапустите контейнер маршрутизатора

Это работает до тех пор, пока вы не удалите все контейнеры ddev (или не удалите последний активный проект ddev).

person Robert Lang    schedule 26.03.2019