科技 · 实用指南
NGINX 改了仍返回 413?先证明哪一跳在限制请求体
不要把每层代理都调大,更不要直接设为无限。用同一个带标记请求定位最先拒绝的跳点,导出该层实际生效配置,只改一个有限范围,再验证阈值上下两侧。

不要把每层代理都调大,更不要直接设为无限。用同一个带标记请求定位最先拒绝的跳点,导出该层实际生效配置,只改一个有限范围,再验证阈值上下两侧。
HTTP 413 可能来自请求链路中的任意服务器或代理。 NGINX client_max_body_size 默认 1m,可位于 http、server、location。
1. 冻结一个可复现请求
生成围绕目标上限、字节数已记录的无敏感测试体,以相同方法、鉴权和内容类型发送到准确路由,并加入唯一请求 ID。保存状态、响应头、响应前缀、时间和客户端跟踪;不能用浏览器文案判断责任层。
2. 定位最先拒绝的跳点
把响应头、TLS 终点、服务器特征和请求 ID 与每一跳的访问及错误日志对齐。最先生成 413 的层才是拒绝者;应用没有相同请求记录,说明请求体没有到达。日志不足时只在受控边界加入不含秘密的关联字段。
3. 证明实际生效策略
独立 NGINX 要从运行实例执行 nginx -T,查找控制该 URI 的 http、server、location 值。ingress-nginx 要保存 Ingress、注解、控制器版本、ConfigMap 与生成的 host/path 配置;边缘和应用上限分别核查。
4. 只改一个有限层
选择内存、缓冲、超时、扫描和存储都能承受的有限值,只改最先拒绝的层和目标范围。未经安全评审不要设为 0。验证语法,并保存新 worker、Pod 或配置代次;若无效就回到责任归属。
5. 验证阈值两侧
用同一标记请求测试略低于上限、语义允许时等于上限、以及略高于上限的精确字节体。较小请求必须到达应用,较大请求应由预期层拒绝。记录字节、路由、配置哈希、日志、结果、回滚和小请求健康。
