线上服务器排错

今天公司主站出现了宕机,一段时间内大家都没有找到问题原因。因为线上做了错误的隐藏,并且错误日志没有打印成功,给大家的问题排查造成了一定困难,最终找到原因是因为刚上线的代码因认为操作原因,收到了预发布代码的污染。导致还在测试中的其他项目被代入了发布项目中,线上数据库字段缺失,造成了服务不可用。

因为项目历史比较久,还是使用的PHP ci框架的模板渲染,未进行前后端分离,所以导致了页面整个挂掉。这个事情引起我的一些思考:首先,如果代码发布后,出现问题应该首先即时回滚代码到上个版本,确保服务的可用性,其次,网站首页应该做到纯静态,因为公司的首页是一个展示公司形象的地方,作为一个互联网公司更不能让长时间的服务不可用。最后要经常进行日志的检查,确保错误信息能够及时的输出到日志文件,今天的问题给我们日后处理相关事件提供了宝贵的经验。