Nginx 反向代理后客户端 IP 全变内网地址:从 realip 配置到防伪造的排查实践
适用场景 业务服务部署在负载均衡、CDN、Kubernetes Ingress 或四层代理之后。应用日志中的 remote_addr 全是代理的内网地址,限流、风控和审计都无法识别真实访问者;更危险的是,直接信任请求携带的 X-Forwarded-For,会让攻击者伪造来源 IP 绕过白名单。 本文以“公网负载均衡 →
Tag
包含这个标签的文章。
适用场景 业务服务部署在负载均衡、CDN、Kubernetes Ingress 或四层代理之后。应用日志中的 remote_addr 全是代理的内网地址,限流、风控和审计都无法识别真实访问者;更危险的是,直接信任请求携带的 X-Forwarded-For,会让攻击者伪造来源 IP 绕过白名单。 本文以“公网负载均衡 →
适用场景 适用于运行在 Linux 虚拟机、物理机或容器节点上的 Web 服务。业务表现为同一版本在部分机器上间歇出现登录失效、JWT token is not active / token expired、HTTPS 握手失败或调用云 API 返回签名过期;重试、重启应用有时短暂恢复,但问题会再次出现。 本文以“应用
适用场景 线上服务切换负载均衡、迁移 API 网关或故障切流后,权威 DNS 已显示新 IP,但仍有一部分客户端持续访问旧地址。常见表现包括:请求间歇超时、少量用户仍命中已下线机房、发布后错误率在一个较长窗口内缓慢回落。 本文以 api.example.com 从 203.0.113.10 切换到 203.0.113.
适用场景 MySQL 主库所在分区持续增长,/var/lib/mysql 已接近 100%,业务开始出现写入失败、事务提交变慢,甚至因为磁盘写满而触发只读保护。检查目录后发现大量 mysql-bin.000xxx 文件,但不能直接删除:binlog 仍可能被复制从库、增量备份或审计流程使用。 本文适用于已开启二进制日志
适用场景 Java、Django、Node.js 等服务在 Kubernetes 中滚动发布后,新 Pod 长时间处于 CrashLoopBackOff,Deployment 一直无法完成;而在开发或低负载环境中启动正常。日志常只来得及打印数据库连接、缓存预热或迁移检查的前几行。 本文以“应用冷启动约 90 秒,但存活
适用场景 Docker 默认使用 json-file 日志驱动。运行一段时间后,宿主机 /var/lib/docker 持续变大,最终出现磁盘告警,甚至应用写文件、创建临时目录或重启容器都失败。本文适用于单机 Docker、Docker Compose 以及未由集中日志系统完全接管容器标准输出的场景。 现象描述 一次线
适用场景 业务运行在 Linux 主机、Docker 或 Kubernetes 节点上,经过 NAT、iptables/nftables 防火墙或四层负载均衡转发。某个时段开始出现 API 偶发超时、DNS 请求失败、容器无法访问外部服务,但主机 CPU、内存和带宽看起来都正常;重启网络或重启节点后短暂恢复。 本文以
适用场景 生产环境执行 python manage.py migrate 后长时间没有结束,应用发布流水线被阻塞;或者迁移最终报出 Lock wait timeout exceeded、OperationalError。这类问题常见于 Django + MySQL/InnoDB:迁移本身很短,却在等待另一条业务 SQL
适用场景 业务使用 Redis 承载登录态、商品详情、计数器或排行榜。平时接口稳定,但在促销、定时任务或某些请求集中到来时,应用开始出现 Redis 超时;监控中 instantaneous_ops_per_sec 并不一定很高,CPU 也可能没有持续满载。 本文以单实例或主从架构为例,说明如何区分 Hot Key(极
适用场景 Python 服务或批处理脚本通过 httpx 调用第三方 HTTP API。流量上来后,应用日志开始出现 httpx.PoolTimeout,但目标接口的监控显示延迟正常;重启服务后短暂恢复,随后问题又出现。常见于 FastAPI/Django 的异步任务、数据同步程序和并发爬取工具。 本文以 httpx.