Dokku (Jigita l Osean) "= 11 =" "= 10 ="

Dokku (Digital Ocean) client_max_body_size node.js

所以我刚刚将我的应用程序推送到 Dokku(数字海洋)- 并从 ajax post:

返回以下错误

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

快速 google 显示此问题是由于 client_max_body_size 太低造成的。所以我通过 SSH 进入服务器,打开应用程序 nginx.conf 并按照此处的说明增加它:

client_max_body_size 100M;

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

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

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

The right file to modify is /home/dokku//nginx.conf and as @dipankar mentioned, you should add a client_max_body_size 20M; line to the server scope.

然后我输入了

reload nginx

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

@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 模板就不会被 dokku 影响(截至 2017/08)。

这已在 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