受到KomicaWiki的Komica條目中关于 使用CoralCDN分流 部分的启发,加上中海宽带对中海内网极之糟糕的路由策略(有部分中海用户相互之间不能链接,或一旦链接会造成其他网络应用断开)导致鸡鸡对常年不能访问通利堂表示遗憾。 所以我决定加多一个访问TONYHEAD通利堂方法,自建服务器真系好玩!
之後由於 ADSL 線路無法應付流量快速成長的需求,1883 氏在友人 L 氏和 H 氏贊助下,陸續使用了三個 Dreamhost 付費空間。並將大多數的貼圖板轉移到付費空間上。之後並在 mormor 的建議下,使用 CoralCDN 分流來降低流量。原 ADSL 線路則以支援文字板為主。
于是为了加入CoralCDN的支持,我修改了一下域名设置,现在tonyhead.com和www.tonyhead.com对应的是不同的主机:tonyhead.com放置在可靠的Site5上,页面上有两个链接,一是回到架设在中海宽带上的www.tonyhead.com,一是走CoralCDN到www.tonyhead.com.nyud.net(如果以前玩过Blogger的应该记得有个穿墙法就是在blogspot.com后加上.nyud.net:8080,其实就是CoralCDN的应用)。
个人服务器上应用CoralCDN的原理(大致上的)
当有用户请求 www.tonyhead.com.nyud.net 时,CoralCDN就会在各地的分发服务器上找关于 www.tonyhead.com 的缓存(多数是没有的啦,因为这只是一个很冷门的站点,关于热门的定义在CoralCDN的定义里只有2类,分别会缓存20秒钟和60秒钟),没有的话就读取 www.tonyhead.com 并缓存下来,这样用户访问的将会是分发服务器上的缓存过的内容而不是 www.tonyhead.com 上直接读取的内容,因为 www.tonyhead.com 对分发服务器是可见的,这样就能帮助用户绕过因为本地网络的问题(如部分中海宽带用户相互之间不能链接)而访问到 www.tonyhead.com 上的内容了。
在具体实施中遇到的问题有
- MovableType中的<$mt:EntryLink$>参数生成的是绝对路径。如在www.tonyhead.com首页上,其中一篇文章的链接是“http://www.tonyhead.com/archive/00001.html”,但如果访问“www.tonyhead.com.nyud.net”,其链接依旧是"http://www.tonyhead.com/archive/00001.html",则访客依旧访问不能。所以要把绝对路径改为相对路径,我用MTRelativeURL插件解决这个问题,现在文章的链接在代码里面生成的是“/archive/00001.html”,那么无论是“www.tonyhead.com”或“www.tonyhead.com.nyud.net”,下面的链接都能自动适应当前域名
- 因为链接都改成相对路径的了,所以要留一手防止恶意CNAME解析,暂时没有什么好方法,只把部分链接做成相对路径,一些页内的链接还是保持绝对路径的形式囧
添加新评论