【问题标题】:How do you increase the client_max_body_size in nginx.conf?如何增加 nginx.conf 中的 client_max_body_size?
【发布时间】:2019-01-08 20:02:12
【问题描述】:

在本地 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 行并重新启动项目,但仍然出现错误。

【问题讨论】:

    标签: nginx drupal-7 ddev


    【解决方案1】:

    首先,对于这个问题,您真的不想使用 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 中,如果要将其增加到 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,您应该会看到上传大小有所改善。

    【讨论】:

    • 我没有意识到我可以使用 ddev 命令导入 backup_migrate 文件。这很有帮助。我将这样做而不是使用 GUI。关于您的其他建议,我实际上确实使用自定义 .ini 文件更改了这些 php 大小限制,但我仍然收到错误,所以我不确定问题是什么。
    • 你必须 both nginx-site.conf 和 php;那么你必须ddev rmddev start。我试了一下,它在备份迁移页面的最大大小约束中显示得很好。但是使用ddev import-db 会更好。
    • 我都做了,重新启动容器,尝试删除和启动等,但仍然无法让它工作。但从现在开始,我将使用 ddev import-db。谢谢!
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 2021-03-16
      • 2013-09-25
      • 2020-08-24
      • 2014-12-30
      相关资源
      最近更新 更多