无巧不成书这话还真不是瞎吹的。
近几天,股市跌宕起伏,好在我赚了一笔;老丈人住院做手术,今天下午出院;朋友的网站放我这里已经很久了,今天晚上被攻击……
这是诚心不让我闲下来的节奏啊。
好吧,顺势聊聊网站的灾备。
有点规模的网站一般分为3部分:程序、文件、数据。
程序方面,小规模网站一般都是找个现成的程序,一般是自己添加点功能,写个模块什么的,规模大点的都是自己干了。这方面备份很容易,也不经常更新,一般用版本控制,但是像我这样的懒人就用最简单粗暴的路子:更新完以后直接整个打包,按日期或者版本号命名。
文件方面,一般是指提供下载的文件和上传的图片、视频什么的。这个的话建议用rsync方便些,会自动把不同的文件进行同步。如果像我做的那个新闻网站那种全自动抓取图片回来的话,我自己的做法是数据更新完成就自动同步到前端服务器和备用服务器,相当于自动备份了。
数据方面一般是说数据库了。这方面有很多现成的办法,比如热备、复制什么的,以前的文章有详细写过路子,再按照前些天的文章做个周期性的自动打包就很妥当了。
遇到灾难性的事,比如攻击、软硬件故障什么的,改一下解析或者点一下鼠标开启cdn,也就分分钟完成自动切换了,再或者参考我以前的文章做个秒级的全自动监控+切换。
总之呢,备份的目的是尽可能提高网站/应用的在线时间,尽可能缩短故障时间;而备份的目标则是上面的3部分,根据各自的实际情况做好规划,遇到事的时候自然不会慌,也没必要慌。现阶段数据库自身就可以实现实时同步(网络或者硬件很差的话可能会延迟几秒),所以在几乎没有成本的情况下实现秒级恢复,应该没什么问题了,当然不差钱的壕可以无视……
顺带说一句,流量型攻击这个事没什么好办法,这本身就不是个技术范畴的问题,技术层面可以做到的就是尽可能防范于未然。攻防双方拼财力,不过好在网站这个事本身对延迟没那么敏感,而国外的防护成本低的离谱,再加上攻击成本那么高,所以除非有杀父之仇,否则没人会冒着坐牢的危险,押上全部身家去跟你的一个网站玩命。话呛到一起了,把你的网站整下线几分钟这是很正常的,我气不顺的时候也会干,但出口气就行了,不至于拼命的。。。