当将大于10MB的文件发布到运行在AWS Elastic Beanstalk上的应用程序接口时,我遇到了"413 Request Entity Too Large"错误。
我已经做了相当多的研究,并相信我需要为Nginx建立client_max_body_size,但是我似乎找不到任何关于如何使用Elastic Beanstalk来做这件事的文档。我的猜测是它需要使用ebetension文件进行修改。
有人想过我怎么才能达到这个极限吗? 10MB太弱了,必须有一个手动的方法来提升。
发布于 2013-09-23 12:19:50
有两种方法可以做到这一点。不幸的是,有些适用于某些类型的EB应用程序,有些适用于其他类型的应用程序。
在AWS文档中支持/推荐
对于一些应用程序类型,比如Java SE、Go、Node.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
要明确增加最大上传大小,请在.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
希望这对其他人有帮助!
发布于 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实例中。
下面是详细的文件夹结构。
发布于 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在部署后获取此更改。
https://stackoverflow.com/questions/18908426
复制相似问题