这是一个忧伤的故事,首先要从一次故障说起。。。。
事故
先简要介绍一下公司网站架构,
代理服务器分为一级代理和二级代理,
一级代理是腾讯云的负载均衡,抗压能力比较强,防范ddos能力比较强,重要业务入口放在一级代理之上,比如www,gameapi,game等,然后反向代理到我们自己服务器。
二级代理是我们机房的服务器,lvs+keepalived高可用的,主要有两个作用:
- 老的SNS业务入口,以及一些访问量少的业务都在二级代理上。
- 备用,如果一级代理故障,紧急切换到二级代理上,保障线上业务正常。
当日北京骨干网波动,,虽然将一级代理切换到二级代理之上,,,不要以为结束了,还没,有一个非常重要的域名的配置有问题,就是gameapi。
切换二级代理时,将gameapi的解析记录由xxx.xxx.1.72改为xxx.xxx.233.123,但四台后端服务器设置的VIP不是xxx.xxx.233.123,而是另一个xxx.xxx.233.121,修改这个有专门脚本更改的,但是给忘记了。
我们代理切换之后,简易测试之后没问题,又跟踪了一会,大概凌晨两点,开始逐步休息。
此后。。。报警小精灵发现曲线故障,打电话给xxx,由于晚上没打通,第二天才发现gameapi故障,于是手动切换vip。。
事后措施
自从这次故障后,我就在想,为什么不将所有业务都放到一级代理之上呢?
这样既大量节省了VIP资源,做https又方便,如果前端代理是lvs,做https的话,既要lvs上开启443端口,又要在后端web服务器nginx上配置https,如果前端代理是nginx,可以直接在前端代理上配置nginx,而不需要再后端web服务器上配置https。
和老大一商量,一拍既合,准备将全站入口都放在腾讯云上。前前后后准备有一个多月,
发送邮件周知
其中遇到的问题(坑)
网站dns里面记录大概4w多条,需要操作的有大概200多条,需要逐一在nginx上配置,测试通过。。。求测试心理阴影面积。
切换在运维和开发配合下没有遇到问题,完全无缝钢材(切换)。