关于 Laravel-china.org 宕机两小时的始末

公告 Summer ⋅ 于 3个月前 ⋅ 最后回复由 kcersing 2个月前 ⋅ 3553 阅读

事件始末

11:40 分左右社区无法访问,服务器上所提供的服务 SSH , HTTPS , HTTP 皆无法访问,排除 PHP-FPM 或者服务器端软件问题。

服务器使用的是 UCloud 的服务,登录控制台,查看控制面板里网络流量和服务器负载,没有满负荷情况,相反是无负荷情况,目测为线路问题:

file

11:53 联系上 UCloud 技术客服人员,反馈情况,中间一直在尝试定位问题。

13:17 技术客服反馈原因为 IP 被 ddos 后封堵,故所有的连接都无法穿透。

file

17 分钟后过去了,询问下得到了一个『修复时间无法评估』的回复,差点把我急死。

file

五分钟过去了,得到了一个需要一天解封的回复。

file

13:40 接收到反馈后,快速上控制台申请一个新 IP ,DNS 将域名绑定到新的 IP 上,等待应用。

14:04 客服通知已经 IP 已经解封。

14:05 DNS 上切回原来的 IP ,网站开始恢复访问。

复盘

整个事件,最坑的是,几年前注册的 UCloud 账号,使用的是一个不常用的邮箱,DDOS 告警时未收到,遇到问题时自己也没想起去查看邮件,导致掉进了这个深坑。

file

不过,这里要给服务商 UCloud 提下几个建议。

建议一、重大问题要通知到

服务器可用性,事关一个产品的生死。大部分互联网产品都没有做 cname 多服务器分发,IP 就是这台服务器命脉,特殊情况无法避免,掐断可以,但是必须使用最高级别的通知方式。

我的账号是认证了手机的,如果把消息通知按等级划分,以下从低到高:

  1. 站内信;
  2. 邮件通知;
  3. 短信通知;
  4. 电话通知。

IP 掐断,整个网站瞬间不可用,每一秒流逝,对于网站主人来讲,真的是在滴血。所以至少要短信通知甚至是电话知会,保证客户完全知悉情况。

建议二、控制台无通知

IP 被封堵,既然能发出邮件,相信在控制台做个标示也不难,但是这个 不难 的动作,有时候却非常救命,可惜 UCloud 的控制台并没有。找遍了整个后台,查遍了各种操作日志、消息通知都没有半点 IP 被封堵或者相关的信息。

要是早发现 IP 被堵,技术客服小哥提交解封申请,半个小时内也就解决了。整事件,总共花了两小时 25 分钟,这对于商业网站来说,是非常致命的。

结语

UCloud 一直是 laravel-china.org 的赞助商,服务器这么多年用下来,还是一直非常稳定的,就是这些细节,一定要做好。现在腾讯云阿里云这么在抢市场,只要做好自己,其实是可以不惧怕这些平台的,好东西总有人会买单。

对于 DDOS 的朋友,有啥问题,加我微信 summer_charlie 慢慢聊。社区上很多在学习的同学,别耽误了他们,感谢。

本文章首发在 Laravel China 社区

Practice makes perfect.

本帖已被设为精华帖!
本帖由 Summer 于 3个月前 取消置顶
回复数量: 29
暂无评论~~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 100 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档