You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署在AWS Elastic Beanstalk的Node.js应用无法上传大文件如何解决

解决方案

1. 优先使用Amazon Linux 2平台推荐的.platform配置方式

你之前配置不生效的核心原因是:目前AWS Elastic Beanstalk的Amazon Linux 2版本Node.js平台,官方已推荐使用.platform文件夹自定义Nginx配置,旧的.ebextensions修改Nginx配置的方式容易被默认规则覆盖。
操作步骤:

  • 在项目根目录创建 .platform/nginx/conf.d/ 层级文件夹
  • 在该目录下新建client_max_body_size.conf文件,内容如下:
client_max_body_size 512M;
  • 打包项目时保证.platform文件夹在zip包的根目录,不要嵌套在子文件夹中

2. 检查Node.js应用层的请求大小限制

Nginx配置生效后如果仍报错,就是Node.js服务本身限制了请求体大小,以常用的Express框架为例:

  • 找到body解析中间件的配置位置,修改limit参数,示例:
// 解析JSON请求体
app.use(express.json({ limit: '512M' }));
// 解析表单请求体,包含文件上传场景也需要同步修改
app.use(express.urlencoded({ extended: true, limit: '512M' }));
// 如果你使用了multer等专用文件上传中间件,也要同步检查修改对应大小限制配置

3. 检查负载均衡配置(如有使用应用负载均衡ALB)

如果你的环境配置了ALB,默认请求体最大大小为8MB,需要自行调整:

  • 进入AWS Elastic Beanstalk控制台,打开对应环境详情页
  • 点击「配置」->「负载均衡」
  • 找到「应用负载均衡」分类下的「请求大小限制」选项,修改为512MB(或你需要的目标大小)
  • 保存配置后等待环境更新完成

4. 部署后验证配置是否生效

部署完成后可以直接登录EB关联的EC2实例,验证配置是否正确加载:

  • 执行命令 nginx -T | grep client_max_body_size,确认输出中有你设置的512M规则
  • 如果规则已存在但未生效,执行 nginx -s reload 手动重载Nginx配置

补充说明(针对旧版Amazon Linux AMI环境)

如果你使用的是已废弃的旧版Amazon Linux AMI(非Amazon Linux 2),使用.ebextensions配置时需要严格保证YAML格式缩进正确,.ebextensions文件夹必须放在zip包根目录,配置文件后缀必须为.config。

内容的提问来源于stack exchange,提问作者Wai Yan Hein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:45:01