[突发救援] 网站突发被腾讯云因未备案 屏蔽,60分钟内抢救恢复成功!

前言

小弟手里运营者几个公众号和小程序,用户量也有几十万,每日访问次数大概在4w+左右。昨天突然客户告诉我,访问页面挂了。打开一看,显示:

 

顿时紧张起来!无法访问可是顶级的事故,无论任何原因,都要第一时间立刻抢修。所以接下来的60分钟突发救援过程,咱们分享出来。

 

事故项目背景说明

用户使用我的公众号客服消息,我会根据输入返回个查询结果页面。页面域名是:lego.domain1.com,服务器是腾讯云服务器。

当时我个人用户注册域名很麻烦,所以借用了朋友公司的服务器,做了个二级域名解析,到我的腾讯云服务器,整个拓扑结构如图:

 

 按道理,我是可以偷着乐的,不需要对二级域名进行备案,那怎么就突然被腾讯云封杀了?问了朋友:

 

 

原来朋友更换了接入商,取消了腾讯的服务。这里面稍微解释下,如果备案在腾讯,备案服务器也在腾讯,那么我的服务器是不会有问题的。

现在因为备案和服务器在阿里,我的服务器在腾讯,所以被封杀了。那么接下来就是紧急救援开始了!

 

突发救援过程分享

PlanB 立刻上

首先,无论事故是什么原因,先做服务降级,恢复现场。

腾讯封杀的是微信封杀打开的页面,其他经过测试,domain1的接口调用均暂时正常,所以影响范围目前没扩散开。我决定先把用户的访问从网站转移到小程序。这里面需要修改客服消息接口,返回小程序跳转链接:

<a href="http://www.qq.com" data-miniprogram-appid="appid" data-miniprogram-path="pages/index/index">点击跳小程序</a>

效果展示:

 

 

 

参考资料:

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/customer-message/customerServiceMessage.send.html#%E4%BA%91%E8%B0%83%E7%94%A8

 

 

解决方案 —— 换地址

服务已经最低限度恢复了,接下来可以慢慢分析解决方案。

虽然腾讯目前没有封杀domainAAA的接口,但是未来接口调用肯定也是会被封杀的。所以lego.domainAAA.com这个域名是肯定要放弃了,但是我的服务器不能放弃,上面都是数据。所以我想起了我后来自己备案了一个域名,叫 www.domainBBB.cn。

那最简单,把domainBBB的域名做个二级域名lego.domainBBB.cn,解析到服务器即可,去腾讯云的dns服务网站,做个二级域名解析:

 

 

地址在:https://console.dnspod.cn/

 

可是这里遇到了个https问题。原来在domain1的时候,申请的SSL证书是不能用在domain2的。

如果我这个时候修改了服务器的证书,会导致现在线上正在跑的domain1接口调用也出问题了,那就是全面崩溃。

 

SSL证书问题

最直观的想法,就是能否让服务器的Nginx支持同时解析两个ssl证书?搜了相关的资料,发现虽然是可以,但是条件比较苛刻,我无法保证在生产环境绝对安全。

所以第二个想到的,是不是可以换个https的端口?从默认443,添加一个444?nginx配置如下:

 

先做了个简单的测试,让两个端口都使用相同的证书,发现是可以的。所以立刻申请一个新的SSL证书。

 

解决方案 —— SSL证书重新申请

 

去阿里云的后台,数字证书管理,重新申请一个新证书。这时候阿里云需要我使用DNS解析方式验证。那么就去腾讯云的DNS解析服务,按照阿里云的提示,去dns后台添加个记录即可:

 

申请通过后,按照提示,把SSL证书文件下载,解压到nginx目录下,修改配置,service nginx restart。然后过一会证书就生效了,HTTPS可以正常访问了。

 

 

公众号、小程序配置新的访问接口

使用了新的端口,需要在公众号和小程序的页面重新配置,否则会无法访问:

 

 

 

备案的域名能否绑定多个服务器?

新的域名domainBBB之前绑定了一台服务器,这次二级域名绑定了新的服务器,需要再备案吗?小编搜了下网站的资料。大概的说法是只要都在腾讯云,就不需要再备案了。

 

posted @ 2022-02-25 14:29    阅读(1325)  评论(0编辑  收藏  举报
IT民工