很无语,就这么个问题反反复复排查了一个月?

事情要从测试妹妹开始

突然有个周四的下午,测试小妹妹蹦蹦跳跳的跑过来反馈,某些图片资源打不开了, Chrome直接访问图片的地址全是空白

第一次排查问题

接到问题之后,随机复制几个图片的 URL 到 Chrome 中测试, 发现确实都是白屏状态, 于是查看 NetWork,返回全是 200 状态码, 照理来说, 应该能正常访问才对。

这里很尴尬的是,因为测试服务器是测试自行部署的,没有部署一些监控和告警服务。

于是运维的同学开始登录服务器,导出了后端同学需要的所有日志文件给到后端的同学自己分析,然后下班了。

后端同事排查到凌晨三点,还是没有找到问题。

解决问题

第二天上班后,后端的同学跟运维说,"要不你重启一下测试服务器吧~"

测试小妹妹:"咦,好了耶!"

第二次出问题

一个月后,测试小妹妹又反馈了,图片又又又又又打不开了~

运维的同学表示,"不正常,一点都不正常!"

于是职业习惯性的在 shell 中敲了 df -h

???!!!

排查发现被后端的同事打测试的日志把磁盘打满了

直接把没用的日志删了,就正常了,你说气不气。

上次重启服务器,缓存文件没了空间多了,又挺了一个月,你说气不气。

问题原因追溯

非4xx/5xx, 说明服务器和浏览器都没有问题, 查了下 ERR_HTTP2_PROTOCOL_ERROR 的解释, 都在说 http2 的配置有问题, 但能确定的是, 测试服务器已经很久没有人登上去过了。

然后复制图片地址到 命令行中 curl, 发现了猫腻:

ok, 继续搜索 HTTP/2 stream 0 was not closed cleanly 相关的问题, 没找到答案。

运维小哥盲猜后给出了一个结论:

服务响应的 HTTP 请求头的 content-length 承诺的输出字节数 与 实际输出的内容长度 不一致,导致触发了 MITM 的安全策略。

然后磁盘被打满了,就是造成 没法按照 content-length 的要求完整输出本应该输出的内容长度 的原因。

测试小妹妹

"运维哥哥真厉害~"

故事的结束

今天的故事讲完了,如果你有兴趣,欢迎关注我的社交账号,交个朋友。

GithubGitee

相关推荐
虎头金猫16 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站17 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏18 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅19 小时前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren19 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
XUEYUAN521219 小时前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
其实防守也摸鱼19 小时前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘20 小时前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥20 小时前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝21 小时前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云