1.3 KiB
1.3 KiB
Web 上传 413 排查与修复
现象
- 上传约 2MB 的
5060102101-001-e(1).dxf提示“文件超过上传大小限制,单文件最大 100MB”。 - 应用层上限实际为
PROJECT_UPLOAD_MAX_BYTES = 100 * 1024 * 1024(100MB),2MB 文件不会触发应用层限制。
原因
- Web 发布环境通常在 Nginx 或其他反向代理前面。
- Nginx 默认
client_max_body_size为 1m,超过 1MB 的请求会在到达 FastAPI 前直接返回413 Request Entity Too Large。 - 前端把 413 映射成了“单文件最大 100MB”,因此看起来像应用层限制。
修复
- 在 Nginx
http/server层设置:
client_max_body_size 100m;
- 仓库提供参考配置:deploy/nginx-aps.conf,含
/api/反代与 100m 上传上限。 - 如果使用其他网关(Caddy/云负载均衡/Ingress),同样将请求体大小上限设为 100m 以上。
- 修改后执行
nginx -t && nginx -s reload(容器内则重建/重启 Web 镜像)。
验证
- 本地直连 FastAPI(不走 Nginx)上传 2.5MB DXF 应返回 200:见
tests/golden/test_drawing_manage.py::test_two_mb_upload_is_not_blocked_by_app_limit。 - 走 Nginx 部署后,浏览器上传同一文件应不再出现 413。