如何自定义我的 nginx 配置以修改 Elastic Beanstalk 中的“client_max_body_size”?

1 分钟阅读
0

我想将大型文件上传到我的 AWS Elastic Beanstalk 环境中,而不会收到“413 Request Entity Too Large”(413 请求实体太大)错误消息。

简短描述

默认情况下,NGINX 的文件上传限制为 1MB。如果请求的大小超过配置值,则返回 413 Request Entity Too Large(413 请求实体太大)错误。要上传大于 1MB 的文件,请在 NGINX 配置文件中配置 client_max_body_size 指令。

**重要提示:**M 和 MB 都是“兆字节”的有效表达。例如,2M 等于 2MB。但是,请在配置文件中仅使用 M,因为 MB 在配置文件中无效。

解决方法

要在 Amazon Linux 2 环境中配置 client_max_body_size,请执行以下操作:

1.    要扩展 Elastic Beanstalk 默认 NGINX 配置,请添加包含以下内容的 .conf 配置文件 client_max_body_size.conf

client_max_body_size 50M;

注意:在前面的示例中,client_max_body_size 的值更新为 50M。根据您的要求用任何值代替 50。

2.    将 .conf 配置文件 client_max_body_size.conf 复制到应用程序源包中名为 .platform/nginx/conf.d/ 的文件夹中。Elastic Beanstalk NGINX 配置会自动在此文件夹中包含 .conf 文件。如果您的源包中不存在此路径,请务必创建此路径。以下示例显示了应用程序 zip 文件中 .platform 目录和 .conf 文件的结构:

-- .ebextensions
       -- other non nginx server config files
            
-- .platform
       -- nginx
           -- conf.d
                 -- client_max_body_size.conf
                   
-- other application files

文件 client_max_body_size.conf 的路径如下:my-app/.platform/nginx/conf.d/client_max_body_size.conf

3.    将您的代码和新的 .platform/ 目录作为新应用程序版本一起部署到您的 Elastic Beanstalk 环境。

4.    部署完成后,登录在 Elastic Beanstalk 环境中运行的实例。登录后,检查 NGINX 服务器的设置是否已应用。为此请使用以下命令:

$ sudo nginx -T | egrep -i "client_max_body_size"
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
client_max_body_size 50M;

AWS 官方
AWS 官方已更新 1 年前