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

jwilder/nginx-proxy配置client_max_body_size不生效,文件上传报413求助

解决步骤

1. 修正Nginx代理配置

你使用的jwilder/nginx-proxy镜像会自动为每个托管服务生成独立的站点配置文件,存储在/etc/nginx/conf.d/目录下,你手动在nginx.conf中添加的无明确域名的默认server块不会匹配你的业务请求,优先生效的是自动生成的带server_name的站点配置。
首先进入Nginx容器验证实际加载的配置:

docker exec -it <你的nginx-proxy容器ID/名称> nginx -T

输出的全量配置中,搜索你的业务域名对应的server块,检查client_max_body_size的实际值:

  • 如需全局修改所有站点的上传限制:在宿主机新建custom.conf文件,写入client_max_body_size 0;,将该文件挂载到nginx-proxy容器的/etc/nginx/conf.d/custom.conf路径,重启容器即可。
  • 如需仅修改当前Node.js后端对应站点的限制:给你的Node.js服务在docker-compose配置中添加环境变量CLIENT_MAX_BODY_SIZE: 0,重启Node.js服务和Nginx代理,代理会自动生成对应配置。

2. 排查Node.js后端的请求体限制

如果确认Nginx配置无误,该413错误就是Node.js后端返回的。你的文件是经过base64编码后放入请求体,base64编码会让数据体积增加约33%,很容易超出Node.js服务默认的请求体大小限制:

  • Express框架修改参考:
// 调整json和表单请求体的大小限制,按需调整数值
app.use(express.json({ limit: '100mb' }));
app.use(express.urlencoded({ limit: '100mb', extended: true }));
  • Koa框架修改参考:
const bodyParser = require('koa-bodyparser');
app.use(bodyParser({
  jsonLimit: '100mb',
  formLimit: '100mb',
  textLimit: '100mb'
}));

修改完成后重启Node.js服务即可。

内容的提问来源于stack exchange,提问作者Josh Jacka-Easter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:15:09