持续的并发连接耗尽了我的服务器存储空间

持续的并发连接耗尽了我的服务器存储空间

如果这个问题出现在错误的论坛,我提前道歉,这是我在这里的第一个问题!

我的客户使用阿里云(中国的阿里云)托管。我已将一个微网站部署到他们的服务器上,其结构如下:

microsite.com -> CDN1 -> SLB -> 2x ECS -> DB ECS

oss.microsite.com -> CDN2 -> OSS

SLB 下的 ECS 实例具有粘性会话,并且仅提供 HTML 响应。所有其他文件(js、css 等)均由 OSS 域提供。这些实例还使用数据库来存储会话数据(例如用户 IP 地址、上次活动的时间戳等)

3 周后,数据库实例耗尽了 40GB 的存储空间。当我查看时,我看到了 2300 万个会话条目。

ECS 实例始终处于 100-150 个并发连接下,昼夜不停,24/7,尽管实际用户(我们使用 GA 进行跟踪)每天可能有 10-15 个(活动尚未开始)。

我很困惑,因为客户 IT 部门说这是“正常”而不是“攻击”,因为它会“严重得多”。他们没有解释这些流量来自哪里。然而,我可以在访问日志(tail -f access.log)中看到持续的请求流。

每当我通过 SSH 登录时,无论白天黑夜,这些总是在那里。GA 是空的,除非我打开微型网站或从客户端打开某人(因为链接尚未推送到媒体)。

有人有任何建议这是什么吗?在我看来,这是一些试图让服务器耗尽资源的尝试,或者是一些不成功的 DDoS。但由于还在100-200个并发连接,阿里云没有激活防火墙/安全规则。我无法访问阿里云控制台,只能通过 SSH 连接到服务器。

我简直不敢相信这是“正常”的。在 CloudFlare 上,我有机器人保护、javascript 挑战等选项。阿里云似乎什么都没有。或者他们根本不在乎。

一些技术信息:

所有 ECS 实例均运行在 Ubuntu 20.04 上。 Web服务是Apache2,运行PHP7.4和PHP7.4-FPM。数据库实例有MySQL8。数据库实例仅允许来自Web服务器实例的连接,而数据库实例仅允许来自SLB(负载均衡器,相当于AWS上的弹性负载均衡器)的HTTP连接。这意味着所有流量仍然必须通过 SLB 到达其下的实例。

有人经历过这样的事情吗?如果他们无法做到这一点,我如何保护我的后端免受其影响?

答案1

好的,我们发现了问题所在,所以我关闭了问题,因为没有 DDoS 或任何攻击:

客户端 IT 已将其负载均衡器设置为机枪服务器实例,我在访问日志中看到的所有流量实际上都是健康检查。

现在,当他们将每次检查的时间设置为合理的 2-3 分钟时,它就消失了。

抱歉给大家添麻烦了。

相关内容