六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 711|回复: 0

在Sina App Engine上架设图片CDN-it论坛

[复制链接]
 楼主| 发表于 2013-12-20 19:36:35 | 显示全部楼层 |阅读模式
在Sina App Engine上架设图片CDN-it论坛


IMUNC 2012的新闻中心使用Linode日本的线路,网络ping不稳定,有时候能到800ms,由于参会代表很多,线路负载很大。于是考虑采用国内的CDN,由于IMUNC.com并没有备案,所以只能自己想办法了。
于是考虑了在SAE上架设一个分发点,自己写了个脚本,功能比较简单,仅支持静态内容缓存。脚本的原理便是利用SAE的Storage储存图片,在收到请求时判断图片是否已经存在了Storage中,如果不存在则跳转会主服务器下载图片,功能类似于CDN
建立CDN首先要在SAE应用后台开启Storage,并且设置缓存过期时间。
在版本目录下建立index.php
  1. <?php
  2. define( 'DOMAIN', 'Storage域名'); //应用Storage的域名(储存域)
  3. define( 'CDNSITE', '应用名-域名.stor.sinaapp.com'); //访问此Storage的网址
  4. define( 'SITE', 'static.yoursite.com'); //主服务器

  5. $url = $_SERVER[ 'SCRIPT_URL' ];

  6. $s = new SaeStorage();
  7. if( $s->fileExists( DOMAIN, $url ) )
  8. {
  9.     header( 'location: http://'. CDNSITE . $url);
  10.     exit();
  11. }

  12. header( 'location: http://'. SITE . $url);

  13. $f = new SaeFetchurl();
  14. $content = $f->fetch( 'http://'. SITE . $url );
  15. if($f->errno() == 0)
  16. {
  17.     $s->write( DOMAIN, $url, $content );
  18. }
  19. ?>
复制代码
部署完脚本后需要将AppConfig更改为如下内容以设置REWRITE
  1. handle:

  2. - rewrite: if( !is_file() && !is_dir()) goto "index.php?%{QUERY_STRING}"
复制代码
访问这样架设的CDN时会额外增加一次跳转,但相比其之前的网速,新浪的速度在国内时很快的。
摘自:http://www.kaijia.me/2012/07/set-up-cdn-on-sinaapp/



该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表