如何在nginx.conf中增加client_max_body_size?

时间:2019-01-08 20:02:13

标签: nginx drupal-7 ddev

在本地ddev实例中上传大文件时,特别是在使用“备份和迁移”从大数据库文件中还原时,出现“ 413请求实体太大”错误。

我正在使用ddev 1.5.1,PHP 7.1,nginx 1.15.3和Drupal 7.60。我曾尝试提供自定义的nginx配置,如文档中所述,但我尝试过的任何方法都没有用。通过谷歌搜索,我认为问题在于client_max_body_size太低,但是我试图将该值翻倍,但没有任何效果。我复制了d7配置,并添加到client_max_body_size行中,然后重新启动了项目,但是仍然出现错误。

2 个答案:

答案 0 :(得分:0)

首先,对于此问题,您确实不想使用backup_migrate进行还原,尤其是对于100MB的上传而言,这是非常大的。 ddev import-db很乐意接受您的backup_migrate * .mysql.gz文件,而且速度如此之快,并且不需要自定义配置。 ddev import-db --src=/path/to/my-backup-migrate.mysql.gz

但是要按照您尝试的方式进行操作,必须同时覆盖nginx-site.conf和php。

如果要将{d1 / nginx-site.conf“增大到1GB,请添加client_max_body_size 1000M;。 (请参阅nginx custom config in docs

在.ddev / php / bigpost.ini(名称是任意的,请参见docs)中,您需要:

post_max_size = 1000M
upload_max_filesize = 1000M

然后ddev rmddev start,您应该会看到上传大小有所改善。

答案 1 :(得分:0)

今天,当我尝试调试一些长期运行的TUS文件上载时遇到了相同的问题。 显然,问题不一定与ddev Web容器有关,而与nginx ddev-router容器有关。在此,请求大小也限制为100m(client_max_body_size 100m)。

您可以通过执行以下步骤暂时避开此问题: -SSH进入ddev-router容器 -编辑/app/nginx.tmpl并设置更高的客户端max_body_size -重新启动路由器容器

这将一直有效,直到您删除所有ddev容器(或删除最后一个活动的ddev项目)。