那天接到通知要接手站点,最先懵住的就是网站日常维护工作包含哪些内容,之前只看过别人偶尔刷新一下页面,以为就是随便点点看看能不能打开,真正上手才知道根本不是那么简单。

早上第一件事,先打开后台的访问日志,一条一条翻,看有没有陌生的IP频繁发起请求,有些请求路径看着就不对劲,不是正常访客会访问到的页面,连着几天都在同一个时段出现,当时拿不准,只是先把记录存下来,没有直接封禁,怕误封了正常的合作渠道。后台的服务状态也要扫一遍,数据库连接数、内存占用这些数值飘在页面上,有时候数值看着偏高,但站点前端还能正常打开,就容易忽略过去,等后面卡起来的时候,已经攒了一堆堆积的请求。

备份是固定要做的。

设定好的自动备份任务偶尔会失灵,前一周就碰上一回,自动脚本跑失败了,日志里只跳出一行报错,没有推送提醒,隔了一天才发现,那天手忙脚乱手动导出数据库文件,打包传到异地存储的位置,存完之后还试着解压核对了一小部分表的数据,确认没有损坏,那一阵心跳都有点快,不敢想如果站点出问题,拿不到备份会是什么局面。文件备份和数据库备份是分开跑的,很多时候只会记得库,忘了上传的图片、附件这些静态资源,之前就漏过一次,后来找回的时候丢了好几份用户上传的文档。

然后是页面内容的巡检,不是只看首页能不能加载,点进内页、子栏目、表单提交入口一个个试。有些页面链接改了之后没有做跳转,点进去直接抛出404,还有图片链接失效,图片地址换了,页面文字还留在原处,空白一块卡在内容中间。表单这块最容易出状况,提交按钮点下去没有反馈,或者提交成功之后收不到通知邮件,访客填完信息直接石沉大海,这类问题前端看不出来,得自己填一遍测试,等着接收通知,有时候等十几分钟邮件才到,也分不清是邮件服务商延迟还是站点接口卡住了。

插件和程序版本更新也是绕不开的一环,每次看到后台提示有新版本推送,都很纠结。直接在线更新怕改动冲突,更新完样式错乱、功能直接失效,找回滚的办法要耗很久;放着不更,又担心存在漏洞被人盯上。有一次试着在测试站点先更,测试站跑着没问题,搬到正式环境,结果缓存机制出了问题,一部分访客看到新版本页面,另一部分还停留在旧页面,来回切换,那段时间不停清缓存,清完没多久又乱掉,折腾到大半天,才找到是缓存规则和新版程序不兼容。

流量波动也会留意,统计工具里的数据和往日差别太大的时候,就要去溯源。有时候不是被攻击,只是某个外部平台贴了站点链接,突然涌进来一批访客,服务器负载跟着上去;还有的时候是爬虫不停抓取页面,占满带宽,把正常用户挤得打不开页面。分不清良性访问和恶意抓取,不敢一刀切全部拦截,只能慢慢观察访问特征,一点点调整限制规则。

域名和证书状态也不能忘,证书到期提醒很容易被消息淹没,等到浏览器弹出风险拦截的时候再处理,已经流失不少访客。DNS解析偶尔也会抽风,不同地区打开的速度不一样,自己这边访问顺畅,别的地方用户反馈打不开,这种跨地域的问题排查起来格外耗时间,只能找不同地方的朋友帮忙打开看看,收集反馈信息。

中间还收到过几条用户反馈,说打开站点的时候偶尔弹窗,检查代码翻了很久,没有找到新增的恶意脚本,最后查到是服务器同机别的站点带来的连带影响,这个就不在自己能直接修改的范围里,只能找服务商沟通,来回拉扯,进度很慢。这件事之后才明白,维护不全是自己站点内部的操作,有不少外部因素会掺进来,不在预设的流程清单里面。

差不多到傍晚,再整理一遍当天记下的异常,哪些暂时标记观察,哪些已经处理完毕,不会写什么规整报表,就是一段一段记在记事本里。很多问题不会一次性爆发,它藏在日志、缓存、接口的缝隙里,今天看着没事,隔两三天突然发作。

也说不上有什么固定顺序,经常处理着一件,别的告警消息弹出来,思路直接被打断,来回切换窗口,到下班的时候脑袋昏沉沉的。仅代表我个人当时接触到的这些事,别的站点,别的负责人,做的内容会不一样。

关掉后台标签页的时候,浏览器还留着几个待排查的日志页面,没有收尾。