我正在运行一个服务,它是 haproxy 负载均衡器后面的第三方商业 Web 应用程序。不久前,我开始看到 http 请求重复,就像卡顿一样 - 相同的请求会快速重复多次,直到应用程序崩溃(因为其会话机制无法应对)或拒绝服务攻击检测启动并阻止 IP。Web 服务器和负载均衡器都在虚拟机上;负载均衡器在一对故障转移集群的 redhat 6 机器上运行,而后端是两台 redhat 6 机器。
重复似乎总是针对功能而不是文件,并且通常不是会话中来自 IP 地址的第一个请求。
我考虑过多种可能性,但基本都排除了:
它似乎不是恶意的,因为我们收到了来自内部网络和外部 IP(但不是来自本地子网)的这些重复请求。会话早期来自同一 IP 的行为通常类似于正常流量 - 而我们用拒绝服务攻击检测阻止合法流量的可能性就是我认为理清这个问题很重要的原因。
似乎不是浏览器版本有问题。虽然我通过谷歌搜索发现这种情况可能发生在旧版本的 Safari 上,并且这些是罪魁祸首,但其他浏览器也会在日志文件中显示重复请求。
可能不是负载均衡器的问题,因为重复的请求出现在 haproxy 日志中。(我对此并不十分确定,因为我不知道在负载均衡过程中日志行生成的具体时间)。
这不是虚拟基础设施的问题,因为我们最近将服务从一个虚拟基础设施迁移到另一个虚拟基础设施,但问题仍然存在。
第三方应用程序基本上是一个搜索工具,每天处理数千次搜索。许多重复请求都是搜索请求,但它们只占基本相同且无错误的请求的很小一部分(大约每天一个)。这也不是我们所在的客户邮件列表提出的问题,我们已经向供应商提到了这个问题,但他们不认为这是他们的应用程序的错误。
如果人们想看的话我可以提供日志行,但我认为所涉及的请求没有什么特别之处,所以我认为这不太可能有帮助。
非常感谢任何有关原因的建议或诊断方法!
谢谢,西蒙