小编典典

在 AWS Elastic Beanstalk 上的 Nginx conf 中增加 client_max_body_size

all

在将大于 10MB 的文件发布到我们在 AWS Elastic Beanstalk 上运行的 API 时,我遇到了 “413 Request
Entity Too Large”错误。

我已经做了很多研究,并认为我需要为 Nginx 增加 client_max_body_size ,但是我似乎找不到任何关于如何使用 Elastic
Beanstalk 执行此操作的文档。我的猜测是它需要使用 ebetension 文件进行修改。

有人对我如何提高极限有想法吗?10MB 太弱了,必须有办法手动增加。


阅读 45

收藏
2022-08-05

共1个答案

小编典典

为此,您可以采取两种方法。不幸的是,有些适用于某些 EB 应用程序类型,有些适用于其他类型。

AWS 文档中支持/推荐

对于某些应用程序类型,例如Java
SE
GoNode.js和可能的 Ruby(Ruby 没有文档,但所有其他 Nginx
平台似乎都支持这一点),Elasticbeanstalk 对如何配置 Nginx 有一个内置的理解。

要扩展 Elastic Beanstalk 的默认 nginx 配置,请将 .conf 配置文件添加到 应用程序源包中
命名的文件夹.ebextensions/nginx/conf.d/中。Elastic Beanstalk 的 nginx
配置自动在此文件夹中包含 .conf 文件。

~/workspace/my-app/
|-- .ebextensions
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- web.jar

配置反向代理 - Java
SE

要专门增加最大上传大小,然后在.ebextensions/nginx/conf.d/proxy.conf将最大正文大小设置为您喜欢的任何大小时创建一个文件:

client_max_body_size 50M;

直接创建 Nginx 配置文件

对于其他一些应用程序类型,经过大量研究并与出色的 AWS 支持团队合作数小时后,我在其中创建了一个配置文件.ebextensions来补充 nginx
配置。此更改允许更大的帖子正文大小。

.ebextensions目录中,我创建了一个名为的文件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;的方法。

请注意,对于某些平台,此文件将在部署期间创建,但在稍后的部署阶段会删除。

您可以指定 Nginx 文档中概述的其他指令。

http://wiki.nginx.org/Configuration

希望这对其他人有帮助!

2022-08-05