上传 2GB 安装包,进度到 80% 后返回 502;分片合并前又报 413。错误日志写着 request body too large、permission denied 或 upstream timed out,中断点可能在代理入口、临时落盘或后端转发。反向代理部署在“随身服务器”环境时,挂载与权限会叠加误判。本文按请求路径逐层验证,不再靠重传碰运气。
如果你正在选机器,或者想先把线路和配置跑通再谈长期方案,可以先看看这几家的线路说明和技术参数:spinservers(低价云服务器),先看清带宽线路、流量策略和退款条款,再决定要不要迁。
大文件进入代理后,可能未到应用就被请求体上限拦截,返回 413 状态码,错误日志为 request body too large。遇到 413,应核对 client_max_body_size、接口和网关限制,而非先改磁盘权限。

上限放行后,代理请求缓冲决定是否先写临时文件。开启缓冲可能报“no space left on device”、只读文件系统或临时文件创建失败;关闭缓冲虽绕开临时目录,却暴露上游读取慢与超时。
客户端断开、等待上游、应用写盘慢,可能形成 499、504 或连接重置。代理临时文件创建失败,多半是临时目录权限、容量或挂载异常;应用出现 permission denied,才指向业务目录、容器卷或运行用户。
给上传请求附加唯一编号,同时查看代理访问、错误和应用日志,核对状态码、接收字节、耗时及上游是否收到请求。413 多在入口;502 且无上游记录,应查缓冲与临时落盘;504 多为等待上游超时;499 更像客户端断开。高流量环境不要记录完整请求体。

用同一份 20MB 文件验证,记录入口上限、缓冲开关、临时目录及连接、读取、发送超时,测试放行、超限和开启缓冲三条路径。检查目录可写性、剩余空间、inode、只读挂载与容器用户映射,再直发应用确认接口限制。每组记录 bytes_received、upstream_status、request_time;改配置后重载并用新请求复测。
分片上传要验证单片与整包:每片记录序号、总大小和 SHA-256,合并前复核数量、边界与摘要。413 只说明当前请求超限,不能证明分片完整。踩坑是只改代理上限却漏掉接口限制,或扩容磁盘却忽略 inode 与只读挂载;并检查合并幂等、失败重传和临时目录清理。
排查 413状态码 时,先看响应头和访问日志,确认拒绝来自 CDN、入口网关、WAF、Ingress 还是应用容器。多级链路可能各自设置 请求体上限,只修改最外层 Nginx 并不够。可用同一测试文件逐层直连,定位真正返回 413 的节点,再调整对应配置,并确认 Content-Length 没有被代理改写。
开启 代理请求缓冲 时,代理通常先接收完整请求体,再转发给上游;超出内存阈值后,数据会写入临时目录。此时应重点检查临时目录权限:目录是否存在、属主是否匹配 Nginx worker 用户、挂载点是否只读,以及磁盘空间和 inode 是否充足。日志中的 permission denied、no space left on device 等信息,往往比上游返回的 500 或 502 更接近根因。
若业务需要边收边处理,可评估关闭 proxy_request_buffering,并设置 proxy_read_timeout、proxy_send_timeout 和合适的缓冲大小。关闭缓冲并不会绕过请求体上限,却会把背压、慢客户端与连接稳定性交给上游,因此必须配合上传限速、连接超时和容量压测。
分片上传校验不能只看“分片已收到”。重试可能造成重复写入,断点续传可能混入旧分片,代理超时也可能出现客户端报错而服务端已经收完。服务端应按会话 ID、文件指纹和分片序号去重,逐片核对大小与哈希,合并后再次校验整文件摘要;失败时返回明确业务码,并清理未完成会话。

同时校验 Content-Range、分片总数和文件总大小,限制单片下限与总分片数,防止超小分片形成请求风暴。文件应先以临时名写入,完成校验后再原子改名,避免下游读取半成品。
nginx -T | grep -E 'client_max_body_size|proxy_request_buffering|proxy_temp_path|client_body_buffer_size',确认每一跳的限制、缓冲策略与临时路径。df -h、df -i 和 namei -l /var/lib/nginx/body,检查磁盘空间、inode、目录权限及 SELinux 上下文。curl -F "file=@test.bin" -o /dev/null -D - https://example.com/upload 发起测试,结合入口与上游日志确认状态码由谁返回,并同步检查应用容器的 multipart 限制。最终应按“定位拒绝层验证缓冲链路核对临时目录验证分片幂等与端到端校验”的顺序处理。修改参数前保留基线,修改后回归超限、空间不足、断网重试、乱序和重复分片等场景,并准备可立即执行的回滚配置。