Archive
Posts Tagged ‘经验’

给域名解析添加备份

May 24th, 2009 12 comments

5月19日,国内的免费智能域名解析服务商 DNSPod 遭到大规模的恶意攻击,意外中断服务若干小时。我的博客域名当时也托管在 DNSPod 处,被攻击的时候无法解析域名,幸好自己记得虚拟主机的 IP 地址。当时只好自己在系统中编辑 hosts 文件来手动完成解析服务。

意外发生以后,再考虑到 DNSPod 之前数次被攻击的历史,我决定把域名转移到其它的服务商,更重要的,是给域名添加备份解析服务器。

DNS 作为互联网基础设施,其稳定性是很值得关注的。传统的做法是域名解析服务商(无论是免费解析还是域名注册商提供的解析)提供至少两台服务器用作域名解析服务。比如 DNSPod 就有六台服务器用作免费解析,EveryDNS 有四台服务器。这种设计是为了提高冗余度以增加域名系统的稳定性。对于意外的服务器当机、网络出现故障等问题,这样做是比较保险的。DNSPod 偶尔就有某台服务器要停机维护的情况,但这并不会给正常解析带来什么麻烦,因为有其它的五台服务器正常工作。可是对于恶意攻击,多台服务器的冗余就没有意义了。攻击者在能力足够的情况下(直白的说就是肉机足够多),完全可以利用大流量把所有的服务器同时攻击一遍。而且大部分时候他们都会这么做,要不然只攻击一部分其实没有效果。DNSPod 就这样被大流量攻击打倒,无数的域名便受到牵连。

在台湾网友的博客上看到《如何用xname搭配zoneedit做备援DNS》这篇文章,于是照着做了一下,把自己的域名解析转移到了 ZoneEditEveryDNS。设置上都是大同小异的,简单说一下。

  1. 注册 ZoneEdit 和 EveryDNS 账号,并登录。
  2. 在 ZoneEdit 中添加自己的域名,比如我的就是 xiaoding.org ,然后添加自己的解析记录,包括 A 记录(IP地址)、CNAME 记录(别名)、MX 记录(邮件服务)等等。Nameserver 这个地方,ZoneEdit 会给出自己的两台服务器地址,稍微记一下数字较小的那个服务器的地址。
  3. 域名解析记录添加完之后,选择 ZoneEdit 的 Advanced 页面,打开最下面的“Edit Security Settings”,然后在“Restrict zone transfers to these IP’s”这个编辑框中填入“0.0.0.0/1;128.0.0.0/1;”(不含此处的引号)。注意这个填法将允许所有的区域传送请求,直白的说就是你的域名记录将对所有人公开。这么做是为了方便,因为 EveryDNS 或者 XName 对于他们的区域传送服务器的 IP 说法十分不清楚,而且时间长了也有可能变动。只好图个方便在这里允许所有的人来抓取 DNS 记录。相信一般人在这里也不会藏什么秘密。 :-P
  4. 来到 EveryDNS 的设置页面。左边是添加记录的地方,basic 框中填入你的域名,比如 xiaoding.org ,选中下面的“Make domain secondary using”,然后输入刚才 ZoneEdit 的那个服务器的地址,点击“Advanced”按钮,添加就完成了。
  5. 在 ZoneEdit 的 Nameserver 选项中,把 EveryDNS 的四台服务器地址添加进去。分别是 ns1.everydns.net ns2.everydns.net ns3.everydns.net ns4.everydns.net
  6. 设置到此结束。EveryDNS 的服务器会自动地向 ZoneEdit 的 Master nameserver 同步。等几个小时以后可以查询自己的 DNS 记录以便确认是否同步成功。

使用如下命令查询 DNS 的 SOA 记录:

nslookup -q=soa xiaoding.org ns3.zoneedit.com

查询结果示例:

xiaoding.org
        primary name server = ns3.zoneedit.com
        responsible mail addr = soacontact.zoneedit.com
        serial  = 1242714018
        refresh = 14400 (4 hours)
        retry   = 7200 (2 hours)
        expire  = 950400 (11 days)
        default TTL = 3600 (1 hour)

注意把 xiaoding.org 换成自己的域名, ns3.zoneedit.com 换成自己的域名解析服务器(每个人可能不同)。针对每个服务器都查询一次,在返回的 SOA 记录中比较一下记录的序列号是否相同,如果相同即表明备份 DNS 设置成功。这样无论 ZoneEdit 或者 EveryDNS 哪一家有问题,自己受的影响都会小很多。

AdSense成功申请经验谈

April 21st, 2009 12 comments

我从今年2月份开始申请 AdSense 至今,总算是在前两天批下来了。在这申请的过程之中,被拒过五六次,每一次被拒都能总结出一点经验来。所以申请成功了,也写一篇文章出来总结一下。

之前我已经写过一篇文章《Google Adsense申请依然被拒及其总结》,在那篇文章里已经差不多把 Google Adsense 申请的经验总结出来了。这一次的申请成功只是对它的一种验证。

依前文所言,AdSense 的申请虽然最终是由人工来批准。但是在这个申请之前会有一个严格的机器检查的过程,如果有不符合的地方,就会按照问题类型自动给你发一封拒信。

那么这个机器检查的依据是什么呢?从我申请的经验总结看来,我认为是 Google Webmaster Tools 中的统计数据。最初我申请被拒,有一个很重要的原因是我的博客从 Blogger 搬独立的 Wordpress 主机上之后,文章的链接地址已经变了(我没有做重定向),所以之前被 Google 抓取的那些链接也都失效了!结果就是我从 Google Webmaster Tools 中看到一大堆错误。包括“Errors for URL in sitemaps”、“Not found”、“Not Followed”,加起来总共有几百之多。

当时我没有意识到这个,再次提交了自己的申请,结果拒信也来得很快。而且提示理由是“正在建设中”。囧!明明我的 Wordpress  博客站点正常运转,却要被认为是正在建设中。我这才意识到极有可能是 Webmaster Tools 中的统计数据给 Google 造成了误判断。

下面的努力就是让 Google 消除这些错误了。但是以通常情况来看,Google 的索引通常更新得很慢(官方说要一个月到三个月左右),况且网上还有一些链接指向了我原来的博客文章,等 Google 自己消除这些错误信息的统计数据总不是个办法。只好出一个下策,编写了一个 Robots.txt 文件,放到网站的根目录。好在各大搜索引擎在 Robots.txt 面前还是比较老实的。我设置了规则,不让搜索引擎访问之前已经失效的地址。这样,原来的“Not found”等类型的错误就被归到“URL restricted by robots.txt”,在 Google 那里这个类型的提示是不算错误的。所以可行。

又等了几周,到四月份了,我的域名也正好注册了六个月,满足了 Google 之前放出的“网站注册满六个月”的要求(有人说不是特别严格)。眼看 Webmaster Tools 中统计的错误信息归零了,我就再次提交了申请。果然周末一过,周一中午我就收到了通知信,告诉我申请已经被批准,算是成功了。

写这篇文章主要是在 Adsense 愈来愈难申请的现在作出一个总结,给后来申请失败的人留作一个参考吧。我总结出来的要点就是:

  1. 满足 Adsense 对网站类型、内容等的基本要求;(废话,这是基本要求了 :oops:
  2. 网站在 Google 中有足够的索引;这一个可以在 Google 中用“site”语法来搜索,比如搜索我的域名就是“site:xiaoding.org”,返回的结果就是索引的数目;(这个也不难做到,向 Google 提交自己的网站,等几天就有了 :smile:
  3. 网站在 Google Webmaster Tools 中不能有过多的统计错误。这一条我认为是最重要的!Google 可能是以机器的方式来判断,所以在机器面前务必达到这个要求。具体的阀值是多少我不清楚,最好是零。(如果有错误的话,可以考虑用 Robots.txt 把那些有错误的网址设为禁止,这样不久统计信息就能归零了)

这几条都做到了,大抵就没有问题了,Enjoy! :cool: