跳转到正文
返回文章列表

解决 NGINX 的 413 Request Entity Too Large 错误

更新于 2026-10-02 20:02

上传文件时,如果接口返回 413 Request Entity Too Large,先检查请求经过的代理层是否限制了请求体大小。使用 NGINX 反向代理时,常见原因是请求超过了 client_max_body_size 的配置值。

为什么会报错

该指令默认值为 1m。超过限制的请求会被 NGINX 拒绝,此时应用服务可能还没有收到请求。

限制的是整个请求体,不只是单个文件。multipart 表单还包含字段和分隔信息,因此实际允许的文件大小不能简单等同于配置值。

调整上限

指令可以配置在 http、server 或 location 中。例如,在对应站点的 server 块中增加:

nginx
server {
    listen 80;
    server_name example.com;

    client_max_body_size 20m;

    # 保留原有 location 和反向代理配置
}

如果上传接口位于单独的 location 中,也检查那里是否配置了不同的上限。将指令加入正确的配置块,不要用这段示例覆盖整个站点配置。

检查并重新加载

Bash
nginx -t
nginx -s reload

先确认配置检查通过,再重新加载。需要管理员权限时,使用部署环境原有的权限与服务管理方式。

如果仍然返回 413,逐层检查 CDN、其他反向代理及应用服务自身的上传限制。只修改其中一层,不会自动放宽其他层;结合响应与对应日志确认谁拒绝了请求。

参考:NGINX client_max_body_size 官方文档。

评论 0

还没有公开评论。

评论已关闭,历史评论仍可阅读。

留下评论

评论审核通过后公开。支持纯文本,最多 2000 个字符。