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

AWS ElasticBeanStalk大文件上传遇413错误求助

解决ElasticBeanStalk上Nginx 413 Request Entity Too Large错误

你踩的第一个误区:更换实例类型没用

t2.xlarge这类实例规格只影响计算、内存等硬件资源,和Nginx的请求大小限制完全无关,所以换实例根本解决不了413错误,属于无效操作。

正确的Nginx配置修改方式(核心)

直接在EC2实例里手动修改Nginx配置文件没用——ElasticBeanStalk在部署、环境更新时会覆盖默认配置,必须通过EB的.ebextensions配置来持久化修改:

  • 在你的应用代码根目录创建.ebextensions文件夹(不存在则新建)
  • 在此文件夹下新建一个配置文件,比如nginx_upload_limit.config
  • 根据你的EB环境操作系统,写入对应配置:

针对Amazon Linux 1环境

files:
  "/etc/nginx/conf.d/proxy.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      client_max_body_size 50M; # 按需调整为25M以上的数值
container_commands:
  01_reload_nginx:
    command: "service nginx reload"

针对Amazon Linux 2环境

Amazon Linux 2的Nginx配置路径不同,需要修改应用对应的配置文件:

files:
  "/etc/nginx/conf.d/elasticbeanstalk/00_application.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      client_max_body_size 50M;
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Connection "";
      proxy_http_version 1.1;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
container_commands:
  01_reload_nginx:
    command: "systemctl reload nginx"
  • 把包含.ebextensions的代码重新部署到ElasticBeanStalk,EB会自动应用配置并重启Nginx。

额外检查点

  • 确认你的Web应用本身有没有上传大小限制:比如Flask的MAX_CONTENT_LENGTH、Django的DATA_UPLOAD_MAX_MEMORY_SIZE、Spring Boot的spring.servlet.multipart.max-file-size等,应用层限制也会导致上传失败。
  • 如果是前端通过预签名URL直接上传到S3,应该绕过Nginx,不会触发这个错误——如果还是报错,检查是否请求先经过了Nginx转发,这种情况仍需调整Nginx配置。

内容的提问来源于stack exchange,提问作者chad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:52:41