关于Nginx:Dokku(数字海洋)client_max_body_size node.js

Dokku (Digital Ocean) client_max_body_size node.js

因此,我刚刚将我的应用程序推送到了Dokku(数字海洋)-并从ajax帖子返回了以下错误:

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

一个快速的谷歌显示此问题是由于client_max_body_size太小。因此,我已通过SSH进入服务器,打开了应用程序nginx.conf并按照此处的说明进行了添加:

1
client_max_body_size 100M;

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

但是,我仍然遇到相同的问题...是否需要重新启动进程或其他操作?我尝试重新启动dokku应用程序-但所有这些都是为了覆盖我的nginx.conf文件。


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

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

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

1
2
3
4
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模板(自2017/08起),就会创建一个文件并入nginx.conf(在nginx启动时),并且不会被dokku保留。 )。


我想通了-我必须cd进入apps目录(按照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.

然后我键入

1
reload nginx

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