相对路径和CDN分发

Tony 提交于
内容

受到KomicaWiki的Komica條目中关于 使用CoralCDN分流 部分的启发,加上中海宽带对中海内网极之糟糕的路由策略(有部分中海用户相互之间不能链接,或一旦链接会造成其他网络应用断开)导致鸡鸡对常年不能访问通利堂表示遗憾。 所以我决定加多一个访问TONYHEAD通利堂方法,自建服务器真系好玩!

之後由於 ADSL 線路無法應付流量快速成長的需求,1883 氏在友人 L 氏和 H 氏贊助下,陸續使用了三個 Dreamhost 付費空間。並將大多數的貼圖板轉移到付費空間上。之後並在 mormor 的建議下,使用 CoralCDN 分流來降低流量。原 ADSL 線路則以支援文字板為主。

于是为了加入CoralCDN的支持,我修改了一下域名设置,现在tonyhead.comwww.tonyhead.com对应的是不同的主机:tonyhead.com放置在可靠的Site5上,页面上有两个链接,一是回到架设在中海宽带上的www.tonyhead.com,一是走CoralCDNwww.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 上的内容了。

在具体实施中遇到的问题有

  1. 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”,下面的链接都能自动适应当前域名
  2. 因为链接都改成相对路径的了,所以要留一手防止恶意CNAME解析,暂时没有什么好方法,只把部分链接做成相对路径,一些页内的链接还是保持绝对路径的形式囧

回到顶部

相关阅读

回到顶部

添加新评论

此字段内容将保密,不会被其他人看见。

Filtered HTML

  • 网页和电子邮件地址自动转换为链接。
  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <drupal-entity data-*>
  • 自动断行和分段。
有时候,快乐的经历留在心里就行了,不要留下证据,但我想可以和你一起快乐。

📚 页面/专题/手册

🏷️ 标签云

猜你喜欢