死链扫描致负载均衡器后服务器崩溃问题排查
问题背景
使用环境
- Bitnami WordPress
- 非托管实例组
- Google Cloud 负载均衡器(已启用健康检查和CDN)
问题现象
每当使用死链检查工具扫描经过Google Cloud负载均衡器(GCLB)的网站时,Web服务器就会崩溃;但在未部署GCLB的预发布网站执行相同测试时,一切正常。已将**连接耗尽超时(Connection draining timeout)**设置为300秒。
健康检查配置截图

疑问
- 该问题是否由健康检查配置导致?
- 如何阻止未经授权的第三方扫描服务器?
问题解答
1. 健康检查配置的影响分析
健康检查大概率不是服务器崩溃的直接原因,但可能间接加重负载:
- 健康检查会定期向实例发送请求,若死链扫描产生大量并发请求,叠加健康检查的请求量,可能导致服务器资源耗尽。
- 检查健康检查的频率和阈值:如果健康检查过于频繁(如每秒1次),高并发扫描+健康检查请求会大幅增加服务器压力。
- 若健康检查路径(如默认的
/)需要WordPress处理复杂逻辑,在高负载场景下可能成为触发崩溃的诱因。 - 验证方法:临时将健康检查路径改为静态文件(如提前在实例上创建
/health-check.html空文件),再运行扫描测试,观察是否仍会崩溃。
2. 阻止未经授权扫描的方案
Google Cloud 负载均衡器层面防护
- Cloud Armor WAF:配置规则拦截扫描请求:
- 匹配请求的User-Agent字段,拦截包含常见扫描工具标识(如
LinkChecker、AhrefsBot)的请求; - 设置单IP请求频率限制(如1分钟内最多50次请求),防止批量扫描。
- 匹配请求的User-Agent字段,拦截包含常见扫描工具标识(如
- CDN优化:延长静态资源缓存时间,减少回源请求;配置CDN安全规则,拦截异常请求。
- 防火墙规则:限制实例仅接受GCLB的IP段访问,避免扫描请求直接绕过负载均衡攻击实例。
WordPress 应用层面防护
- 安装安全插件:如Wordfence,可自动识别扫描工具并拦截,支持IP访问限制、请求频率控制。
- 优化
robots.txt:添加Disallow规则禁止扫描工具爬取敏感路径,但仅对遵守规则的爬虫有效。 - 限制后台访问:仅允许指定IP访问WordPress后台,减少扫描入口。
额外优化建议
- 调整PHP配置:提升
memory_limit、max_execution_time参数,搭配Redis等缓存工具优化数据库性能,增强服务器抗负载能力。 - 监控资源指标:扫描时实时查看CPU、内存、连接数变化,定位是资源耗尽还是进程异常崩溃。
内容的提问来源于stack exchange,提问作者FlyingPenguin
相关产品推荐
相关产品推荐

