首页 > 解决方案 > 为什么我在 AWS EC2 实例上的 nodejs 应用程序的大文件上传失败并显示状态 413?

问题描述

我正在使用多部分表单发布文件并上传到 s3。该应用程序在本地运行良好。

当我上传一个小文件时,它工作正常。但是,当我上传较大的文件时,上传失败,状态码为 413。

它似乎适用于大小高达 90MB 左右的文件,但不适用于较大的文件。

我的 nginx 配置如下:

server {
    listen 80;
    server_name mydomain.com;
    location / {
        client_max_body_size 500M;
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_redirect off;
     }
}

标签: node.jsnginxamazon-ec2

解决方案


原来问题出在 cloudflare 上。Cloudflare 在免费层的最大上传大小限制为 100MB,即使有付费计划,限制也会增加到 200MB 左右,这不符合我的要求。

早些时候,我将文件发送到我的服务器并从那里上传,但现在我绕过了它,使用预签名的 PUT url 将对象从浏览器直接上传到 S3。


推荐阅读