关于 Laravel-china.org 宕机两小时的始末
事件始末
11:40 分左右社区无法访问,服务器上所提供的服务 SSH , HTTPS , HTTP 皆无法访问,排除 PHP-FPM 或者服务器端软件问题。
服务器使用的是 UCloud 的服务,登录控制台,查看控制面板里网络流量和服务器负载,没有满负荷情况,相反是无负荷情况,目测为线路问题:
11:53 联系上 UCloud 技术客服人员,反馈情况,中间一直在尝试定位问题。
13:17 技术客服反馈原因为 IP 被 ddos 后封堵,故所有的连接都无法穿透。
17 分钟后过去了,询问下得到了一个『修复时间无法评估』的回复,差点把我急死。
五分钟过去了,得到了一个需要一天解封的回复。
13:40 接收到反馈后,快速上控制台申请一个新 IP ,DNS 将域名绑定到新的 IP 上,等待应用。
14:04 客服通知已经 IP 已经解封。
14:05 DNS 上切回原来的 IP ,网站开始恢复访问。
复盘
整个事件,最坑的是,几年前注册的 UCloud 账号,使用的是一个不常用的邮箱,DDOS 告警时未收到,遇到问题时自己也没想起去查看邮件,导致掉进了这个深坑。
不过,这里要给服务商 UCloud 提下几个建议。
建议一、重大问题要通知到
服务器可用性,事关一个产品的生死。大部分互联网产品都没有做 cname 多服务器分发,IP 就是这台服务器命脉,特殊情况无法避免,掐断可以,但是必须使用最高级别的通知方式。
我的账号是认证了手机的,如果把消息通知按等级划分,以下从低到高:
- 站内信;
- 邮件通知;
- 短信通知;
- 电话通知。
IP 掐断,整个网站瞬间不可用,每一秒流逝,对于网站主人来讲,真的是在滴血。所以至少要短信通知甚至是电话知会,保证客户完全知悉情况。
建议二、控制台无通知
IP 被封堵,既然能发出邮件,相信在控制台做个标示也不难,但是这个 不难 的动作,有时候却非常救命,可惜 UCloud 的控制台并没有。找遍了整个后台,查遍了各种操作日志、消息通知都没有半点 IP 被封堵或者相关的信息。
要是早发现 IP 被堵,技术客服小哥提交解封申请,半个小时内也就解决了。整事件,总共花了两小时 25 分钟,这对于商业网站来说,是非常致命的。
结语
UCloud 一直是 laravel-china.org 的赞助商,服务器这么多年用下来,还是一直非常稳定的,就是这些细节,一定要做好。现在腾讯云阿里云这么在抢市场,只要做好自己,其实是可以不惧怕这些平台的,好东西总有人会买单。
对于 DDOS 的朋友,有啥问题,加我微信 summer_charlie 慢慢聊。社区上很多在学习的同学,别耽误了他们,感谢。
推荐文章: