【问题标题】:Getting 413 Payload too Large when submitting files to WebApp on Elastic Beanstalk将文件提交到 Elastic Beanstalk 上的 WebApp 时出现 413 Payload too Large
【发布时间】:2022-01-10 01:27:39
【问题描述】:

我正在开发一个 Web 应用程序,用户在该应用程序中将照片提交到在 AWS (Elastic Beanstalk) 上运行的 API。当用户尝试提交大于 2mb 的照片时,我看到了 413(有效负载过大)响应,这似乎是 Tomcat 8 默认设置为 maxPostSize 的结果。

因此,我正在尝试找出一种方法来修改此设置,并使用我们为每个启动自动缩放的新 EC2 实例预定义的其余 JVM 选项。我与 AWS 支持人员进行了交谈,他们建议使用 EB 扩展来设置 server.xml 文件,其中包含每次 Elastic Beanstalk 启动新服务器时都会复制的所需配置。

但是,由于我们所有其他预设都在 Elastic Beanstalk 配置中配置了环境变量/JVM 选项,因此我更愿意以相同的方式修改 Tomcat maxPostSize,但我无法弄清楚变量 (如果可能的话)使用 java -D 语法。有人能指出我正确的方向吗?

我非常感谢任何建议或建议!

【问题讨论】:

  • 遵循 AWS 支持的建议并使用 ebextensions。 Tomcat我不知道,但是对于java环境,还有你需要配置的nginx来增加最大上传大小。
  • Tomcat 的maxPostSize 主要适用于application/x-www-urlencoded,您可能使用multipart/form-data 请求,并且可以在您的应用程序内部设置此类请求的限制(例如通过@MultipartConfig)。此外,Tomcat 通常不会返回413,除非您使用的是FailedRequestFilter
  • 知道了!绝对有用的建议。但是,如果 Tomcat 没有返回 413,这可能是 AWS 配置问题吗?

标签: amazon-web-services tomcat8


【解决方案1】:

这个错误发生在我们的测试环境中,我意识到 AWS 代理服务器实际上运行的是 Nginx,而不是 Tomcat(它应该一直运行)。我们切换回Tomcat,问题就解决了。看来问题可能是 Nginx 的 client_max_body_size 的默认值。

【讨论】:

    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多