0

在本地 ddev 实例中上传大文件时,我收到“413 Request Entity Too Large”错误,特别是使用备份和迁移从大型数据库文件恢复时。

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

4

2 回答 2

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。

在“服务器”部分的 .ddev/nginx-site.conf 中,client_max_body_size 1000M;如果要将其增加到 1GB,请添加。(请参阅docs 中的 nginx 自定义配置

在 .ddev/php/bigpost.ini (名称是任意的,请参阅文档),你会想要:

post_max_size = 1000M
upload_max_filesize = 1000M

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

于 2019-01-08T20:45:03.167 回答
0

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

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

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

于 2019-03-26T09:47:17.753 回答