# 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` 层设置: ```nginx client_max_body_size 100m; ``` - 仓库提供参考配置:[deploy/nginx-aps.conf](../../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。