问题描述
请求访问 7 层 LB 报错 "error HTTP 413 response body: invalid character ",我该如何排查并解决此问题?
分析过程
- 收集用户7层访问日志和相关报错,搜集方法请参考[1]
[https] [2021-xx-xxT12:00:07+08:00] [xxxx] [60134] [xxxx /xxxxx HTTP/1.1] [xxxxx] [xxx] [-] [1074006688] [TLSv1.2] [ECDHE-RSA-AES256-GCM-SHA384] [xxxx] [1289522547] [1] [xxxx] [xxxx] [xxxx] [443] [17.688] [413] [350] [297.403] [xxxx] [xxxx] [-] [-] [-] [-] [-]
- 检查 status 和 upstream_status 两个字段状态码,分析是 LB 返回还是后端 RS 返回
- 该案例中 status 为 413 、upstream_status 为 空 [-] 。可判断是从ALB反馈413状态码
- 检查 request_length (从客户端收到的请求字节数)日志大小 和实际请求大小,该案例为[1074006688] 1GB左右 。
- 核实ALB服务端 client_max_body_size 限制大小为1GB
解决方案
- 由于暂时无法根据实例调整。建议更换成 4 层 LB,如果有 HTTP S场景建议将证书先放到后端。
- 客户端分片上传,分片大小不超过1GB。
参考文档
[1] https://www.volcengine.com/docs/6406/75236 如果您有其他问题,欢迎您联系火山引擎技术支持服务