2007年3月30日星期五

在FeedSky和FeedBurner中无缝切换

  FeedSkyFeedBurner是目前中文Blog中使用最广泛的两个RSS Feed托管服务,在使用这些服务的过程中,由于其URL不同,因此在两者之间进行切换就比较麻烦,本文介绍一种方法,可以在FeedSky和FeedBurner中进行无缝切换,保持没有一点损失订阅用户的情况。

  我曾经在“Feed发布方式的思考”一文中提出过一种发布RSS的观点,就是将Feed以自己的域名发布可以降低各种外界风险,如果使用子域名的方式发布RSS Feed,那么将会更好的支持广泛的无缝切换,Feed切换的风险将会降的更低。

  建立Blog之初的时候,就存在如何发布Feed的问题,使用默认的地址发布,在更换Blog程序时会发生Feed地址改变的问题,而带来订阅用户遗失,因此使用什么方式发布Feed,从一开始建立Blog的时候就应该认真考虑。

  我的观点是,对于有条件的用户,应该使用feed.domain.com的方式发布Feed,这种方式我认为是一种最优的发布方式,切换简便,只需要修改自己Feed子域名的DNS记录,就可以在目前两大Feed托管服务和自己主机三者之间无缝切换。

  当然,最主要的前提条件是,在最开始发布RSS Feed的时候,要使用子域名的方式发布。比如如果博客的域名是www.williamlong.info,那么RSS Feed应该使用类似feed.williamlong.info的方式发布。

  在不使用其他托管服务的时候,我们可以使用映射子域名的方式直接发布Feed。实现起来是比较容易的,对于IIS用户,只需要多绑定一个域名,然后将feed的A记录指向绑定IP,然后在IIS里增加一个虚拟主机,主机头名为feed.williamlong.info(以我的域名为例),然后在“文档”中的默认文档输入RSS的文件名,例如rss.xml,这时访问子域名即可得到RSS Feed。对于Apache来说,在Cpanel中可以进行设置子域名映射目录,也可以实现同样功能。

  这种使用自己的主机发布Feed的方式,缺点是消耗自己服务器的流量和资源,且不好统计订阅数,如果我们觉得这样不好,那么可以通过设置DNS来无缝地进行Feed域名切换。

  我们知道,FeedSky是有免费域名绑定的服务,可以免费将子域名绑定到个人FeedSky的帐号中,因此只要登录域名控制台,修改feed子域名的A记录到FeedSky指定的IP即可完成无缝Feed切换。

FeedSky绑定域名

  与FeedSky相同的是,FeedBurner也可以绑定类似的子域名的服务,功能几乎完全相同。

  登录FeedBurner,点击“My Account”后选择“MyBrand”,就可以看到如下图的绑定域名的界面。费用是每月3美元绑定3个Feed(更新,2007年7月后已经完全免费了),投资并不大,收益是获得自己的域名,我现在比较后悔,如果当初设置FeedBurner时候使用这个功能就好了。

FeedBurner绑定域名

  切换到FeedBurner的方法是,登录域名控制台,修改feed子域名的CNAME记录,增加一条子域名,CNAME数值为feeds.feedburner.com.就可以了。

  使用这种方式发布,主要是为了避规风险。比如我目前直接使用FeedBurner发布的风险就是,如果FeedBurner被墙了,我将损失所有一万四千名读者,而没有一点办法补救,而如果我是使用子域名的方式发布,我直接修改子域名的IP到另外一家就可以避免这种风险,这也是我当初没有考虑到的问题。