首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在AWS弹性豆茎上提高Nginx conf中的client_max_body_size

在AWS弹性豆茎上提高Nginx conf中的client_max_body_size
EN

Stack Overflow用户
提问于 2013-09-20 11:37:03
回答 25查看 73.1K关注 0票数 162

当将大于10MB的文件发布到运行在AWS Elastic Beanstalk上的应用程序接口时,我遇到了"413 Request Entity Too Large"错误。

我已经做了相当多的研究,并相信我需要为Nginx建立client_max_body_size,但是我似乎找不到任何关于如何使用Elastic Beanstalk来做这件事的文档。我的猜测是它需要使用ebetension文件进行修改。

有人想过我怎么才能达到这个极限吗? 10MB太弱了,必须有一个手动的方法来提升。

EN

回答 25

Stack Overflow用户

回答已采纳

发布于 2013-09-23 12:19:50

有两种方法可以做到这一点。不幸的是,有些适用于某些类型的EB应用程序,有些适用于其他类型的应用程序。

在AWS文档中支持/推荐

对于一些应用程序类型,比如Java SEGoNode.js,也许还有Ruby ( Ruby没有文档记录,但是所有其他的Nginx平台似乎都支持它),Elasticbeanstalk对如何配置Nginx有内置的理解。

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

|-- .ebextensions
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- web.jar

Configuring the Reverse Proxy - Java SE

要明确增加最大上传大小,请在.ebextensions/nginx/conf.d/proxy.conf中创建一个文件,将最大正文大小设置为您喜欢的任何大小:

client_max_body_size 50M;

直接创建Nginx配置文件

对于其他一些应用程序类型,在经过大量研究和与出色的亚马逊网络服务支持团队合作数小时后,我在.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

希望这对其他人有帮助!

票数 250
EN

Stack Overflow用户

发布于 2020-05-22 04:50:19

我尝试了添加实现级别配置的所有.ebextensions方法,但在最新的Amazon Linux AMI中它对我没有帮助。我做了很多研究,在浏览了日志后,我发现部署任务运行器每次都会检查一个名为.platform的文件夹,我想添加一个就像.ebextensions一样。下面是我在我的项目根文件夹中所做的设置。

将下面的文件夹设置添加到项目文件夹的根目录下。

文件夹结构 (.platform/nginx/conf.d/proxy.conf)

.platform/
         nginx/
              conf.d/
                    proxy.conf
         00_myconf.config

文件1的内容- proxy.conf (在.platform/nginx/conf.d/文件夹内)

client_max_body_size 50M;

文件2的内容- 00_myconf.config (在.platform/文件夹内)

container_commands:
  01_reload_nginx:
    command: "service nginx reload"

完全注意扩展。第一个文件是.conf,第二个文件是.config

现在,将您的项目重新部署到Amazon Elastic Beanstalk,您将看到它的魔力。此配置将添加到您作为弹性伸缩一部分创建的所有EC2实例中。

下面是详细的文件夹结构。

票数 121
EN

Stack Overflow用户

发布于 2014-05-11 07:25:19

files:
    "/etc/nginx/conf.d/proxy.conf" :
        mode: "000755"
        owner: root
        group: root
        content: |
           client_max_body_size 20M;

为了安全起见,修改了上面的答案(语法错误,请看YAML中的两个'owner:‘条目),伙计们,请不要在任何东西上设置777权限。除非你喜欢被黑客入侵,并将Nginx配置文件的所有者设置为root。

另请参阅below answer,以使nginx在部署后获取此更改。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18908426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档