【问题标题】:Dokku (Digital Ocean) client_max_body_size node.jsDokku (Digital Ocean) client_max_body_size node.js
【发布时间】:2015-11-14 15:28:53
【问题描述】:

所以我刚刚将我的应用程序推送到 Dokku (Digital Ocean) - 并从 ajax 帖子返回以下错误:

POST http://example.com/foo413(请求实体太大)

快速谷歌显示这个问题是由于 client_max_body_size 太小。所以我已经通过 SSH 连接到服务器,打开了应用程序 nginx.conf 并按照此处的说明增加了它:

client_max_body_size 100M;

https://github.com/progrium/dokku/issues/802

但是,我仍然遇到同样的问题...我需要重新启动进程吗?我尝试重新启动 dokku 应用程序 - 但所做的只是覆盖我的 nginx.conf 文件。

【问题讨论】:

    标签: node.js nginx digital-ocean dokku


    【解决方案1】:

    我想通了 - 我必须 cd 进入应用程序目录(根据 github 说明:https://github.com/progrium/dokku/issues/802

    要修改的正确文件是/home/dokku//nginx.conf,正如@dipankar 提到的,您应该添加一个client_max_body_size 20M;连接到服务器范围。

    然后我输入了

    reload nginx
    

    进入命令行。所有作品:)

    【讨论】:

    • 如果有人知道我如何在部署之间保留这些设置 - 那太好了!
    • 见我上面的回答;)
    【解决方案2】:

    @Rob 的答案是正确的,但存在更改未持久化的问题,因为 nginx.conf 可能会重新生成,例如部署时。

    我使用的解决方案在这个 github 提交 https://github.com/econya/dokku/commit/d4ea8520ac3c9e90238e75866906a5d834539129 中进行了概述。

    基本上,dokkus 默认的 nginx 模板将 nginx.conf.d/ 子文件夹中的每个文件都包含在主 server 配置块中,因此

    mkdir /home/dokku/myapp/nginx.conf.d/
    echo 'client_max_body_size 50M;' > /home/dokku/myapp/nginx.conf.d/upload.conf
    chown dokku:dokku /home/dokku/myapp/nginx.conf.d/upload.conf
    service nginx reload
    

    将创建一个合并到 nginx.conf 的文件(我相信在 nginx 启动时),只要您不使用干扰插件或定义另一个 nginx 模板(截至 2017/08 )。

    【讨论】:

      【解决方案3】:

      这已在 Dokku 中更新,可以通过 CLI 完成:dokku nginx:set node-js-app client-max-body-size 50mhttps://dokku.com/docs/configuration/nginx/#specifying-a-custom-client_max_body_size

      【讨论】:

        猜你喜欢
        • 2016-03-23
        • 2015-01-04
        • 1970-01-01
        • 2015-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        相关资源
        最近更新 更多