在将大于 10MB 的文件发布到我们在 AWS Elastic Beanstalk 上运行的 API 时,我遇到了 “413 Request Entity Too Large”错误。
我已经做了很多研究,并认为我需要为 Nginx 增加 client_max_body_size ,但是我似乎找不到任何关于如何使用 Elastic Beanstalk 执行此操作的文档。我的猜测是它需要使用 ebetension 文件进行修改。
有人对我如何提高极限有想法吗?10MB 太弱了,必须有办法手动增加。
为此,您可以采取两种方法。不幸的是,有些适用于某些 EB 应用程序类型,有些适用于其他类型。
对于某些应用程序类型,例如Java SE、Go、Node.js和可能的 Ruby(Ruby 没有文档,但所有其他 Nginx 平台似乎都支持这一点),Elasticbeanstalk 对如何配置 Nginx 有一个内置的理解。
要扩展 Elastic Beanstalk 的默认 nginx 配置,请将 .conf 配置文件添加到 应用程序源包中 命名的文件夹.ebextensions/nginx/conf.d/中。Elastic Beanstalk 的 nginx 配置自动在此文件夹中包含 .conf 文件。 ~/workspace/my-app/
要扩展 Elastic Beanstalk 的默认 nginx 配置,请将 .conf 配置文件添加到 应用程序源包中 命名的文件夹.ebextensions/nginx/conf.d/中。Elastic Beanstalk 的 nginx 配置自动在此文件夹中包含 .conf 文件。
.ebextensions/nginx/conf.d/
~/workspace/my-app/
|-- .ebextensions | `-- nginx | `-- conf.d | `-- myconf.conf `-- web.jar
配置反向代理 - Java SE
要专门增加最大上传大小,然后在.ebextensions/nginx/conf.d/proxy.conf将最大正文大小设置为您喜欢的任何大小时创建一个文件:
.ebextensions/nginx/conf.d/proxy.conf
client_max_body_size 50M;
对于其他一些应用程序类型,经过大量研究并与出色的 AWS 支持团队合作数小时后,我在其中创建了一个配置文件.ebextensions来补充 nginx 配置。此更改允许更大的帖子正文大小。
.ebextensions
在.ebextensions目录中,我创建了一个名为的文件01_files.config,其内容如下:
01_files.config
files: "/etc/nginx/conf.d/proxy.conf" : mode: "000755" owner: root group: root content: | client_max_body_size 20M;
这会在 /etc/nginx/conf.d 目录中生成一个 proxy.conf 文件。proxy.conf 文件只包含一个行之有效client_max_body_size 20M;的方法。
client_max_body_size 20M;
请注意,对于某些平台,此文件将在部署期间创建,但在稍后的部署阶段会删除。
您可以指定 Nginx 文档中概述的其他指令。
http://wiki.nginx.org/Configuration
希望这对其他人有帮助!