• 记【域名备案被注销】后的9个小时


    收到通知

    7月6日下午收到运维转告公司收到ICP的邮件,告知公司主站已被注销,该站的备案号已被收回。收到通知的那一刻就傻了,这意味这上百个子域名将被停用,紧接着就发现部分网站已经开始出现TestPage 184的提示。
    image.png

    更换域名

    第一时间想到的是更换域名,被注销的域名是xxx.com,公司名下还有一个xxx.cn的域名备案正常。于是开始购买 cn 域名的 SSL 证书,先把用户无感知的一些后台服务换成了 *.xxx.cn 的子域名。更换的过程中发现好多代码中硬编码了好多域名进去,于是召集研发排查硬编码的域名并更换。

    CNAME 的诱惑

    域名换了几个发现进度太慢,距离被注销已经1个小时了,发现原有域名下的 CDN 服务并没有失效,难道是因为阿里云的 DNS 只是屏蔽了主域名,增加一层 CNAME 就绕过去了?怀着侥幸心理,把一个 yyy.xxx.com CNAME 的记录改为了 yyy.xxx.cn 并将 yyy.xxx.cn 的 A 记录改为了源站的IP。结果是竟然可以了,暗自窃喜了10分钟后,访问 yyy.xxx.com 发现网站又是 TestPage 184了。

    无奈之举,境外服务器

    CNAME 方法失败后开始反思,可选的方案有两种:

    1. 更换域名
    2. 原有域名解析到境外服务器

    两种方案的优劣比较:

    方案 优势 劣势
    解析境外 配置简单、业务影响小 访问速度慢、非长久之计,后期需要再调整回来
    更换域名 风险小、可长久使用 配置繁琐、业务影响大

    综合考虑后还是决定解析至境外的服务器,并用Nginx反向代理回境内服务器上。需要做的就是:

    • 购买新加坡节点的服务器,安装 Nginx ,配置反向代理。
    • 解析原有域名至新加坡服务器的IP。

    下面列出一个站点的 Nginx 配置:

    server {
        listen 443 ssl;
        server_name libraryplus.api.xxx.com photo.api.xxx.com;
        root html;
        index index.html index.htm;
        ssl_certificate   /etc/nginx/api.xxx.com.pem;
        ssl_certificate_key  /etc/nginx/api.xxx.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
        ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        client_max_body_size   1024m;
        location / {
                proxy_pass http://39.107.253.80:80;
                proxy_redirect  off;
                 if ( $host ~* (.*).com )
                {
                    set $host_my $1;
                }
                proxy_set_header  Host  $host_my.cn;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    

    其中需要强调的一个地方是 proxy_set_header Host 的配置。因为原有域名是被阿里云的防火墙过滤的,如果不修改回源的 Host 的话,即使 DNS 可以逃脱,内容还是会被拦截的。所以 Host 改为一个已备案的域名就可以了,上面我通过正则批量改成了 .cn ,对应的要在后端的web服务器上做对应的修改,如 IIS 里要在站点的网站绑定里添加对应 cn 域名的主机头。
    至此,在7日的凌晨3点把120多个子网站全部配置完成,客户感知的最长宕机时间为9个小时...

    恢复操作

    9日下午收到ICP的备案通过邮件,告知备案已通过,域名可以在7小时内生效。(正常的审核速度应该是7-14个工作日,后来才得知,注销和再次审核通过都是有背后操作的。)
    从境外的撤离操作就简单很多,业务站点几乎不用动,只要把域名的 DNS 重新解析回原来的IP就可以了,web站点绑定的备用域名主机头可以删了,境外服务器也可以释放了。

  • 相关阅读:
    JSP实验四
    servlet应用
    SWPU电子邮件页面
    Java Web基础
    软件工程课程总结
    Beta-星期五
    个人作业-Alpha项目测试
    第三次作业
    学期总结-西北师范大学-18计师班助教牛百泉
    Java学习计划
  • 原文地址:https://www.cnblogs.com/gudao119/p/13281983.html
Copyright © 2020-2023  润新知