导语:看了一些网上的文章,发现大家对如何利用LayerLocalCDN来搭建本地化存在一些迷惑,那么这篇文章就来介绍一下如何利用LayerLocalCDN来搭建本地化CDN,为自己的WordPress站点提速。
下载LayerLocalCDN
首先当然是下载LayerLocalCDN,大家可以到这里来下载。
上传LayerLocalCDN
大家应该都知道CDN的原理,就是将主站的静态资源缓存到缓存站点,利用缓存站点较好的网络速度来让用户获得浏览体验。这种情况比较适合主站在海外,但用户群在国内的情况。这时候,我们可以在国内搭建CDN缓存服务器,把海外主站的资源取到国内的缓存服务器上。这样的话,网页打开的速度就能明显的加快。
下载完LayerLocalCDN,就将压缩包上传到你准备好的缓存服务器上解压,然后打开config.sample.inc.php:
//Layer CDN 设定 /**********基本设定**********/ define('STATIC_URL','http://www.baidu.com/'); //源站URL define('DOMAIN','cdn'); //使用云存储时,填写存储空间的名字;使用本地存储时,填写存储的相对路径。 define('WELCOME_DOC',TRUE); //空请求时是否显示欢迎界面 /*********防盗链设定*********/ define('ALLOW_REGX','.*'); //设置防盗链允许的[域名]正则表达式,此表达式只匹配referer的域名部分 //define('ALLOW_REGX','^(best33\.com|.*\.best33\.com|)$'); //允许best33.com,*.best33.com,浏览器直接访问 //define('ALLOW_REGX','^(best33\.com|.*\.best33\.com)$'); //允许best33.com,*.best33.com,不允许浏览器直接访问 //define('ALLOW_REGX','^(.*)$'); //允许任意,允许浏览器访问 //define('ALLOW_REGX','^(.+)$'); //允许任意,但不允许浏览器访问 /**********进阶设定**********/ define('PURGE_KEY','purge'); //刷新缓存的密码,访问http://domain/PURGE_KEY/path/to/file来刷新缓存。 define('MIME','text/html'); //默认MIME类型,可以设为application/octet-stream则对未知项目自动弹出下载。 define('DIRECT_EXT','php|asp|htm|html'); //不进入缓存的扩展名,安全起见不要删除PHP。 define('NO_LOCATE',true); //设置后将不进行跳转而采用read读取方式,可能会降低速度并增加流量。仅当遇到问题时启用。 define('NO_KEY',true); //启用后将不再使用一串md5编码的key作为文件名,当想保持文件名一致时启用之。 define('NO_SECOND_FLODER',true); //启用后将不再使用两层文件夹存储缓存,仅在本地环境、NO_KEY为假时有效。 define('STATIC_HOST',''); //可以留空,也可以在这里填写你的源站域名,而在STATIC_URL中填写IP,减少域名解析的时间。 /**********高级设定**********/ define('RUN_ENV', 'LOCAL'); //自定义运行环境(如不去掉前面的//则自动判断)可选:BAE/SAE/GCS/LOCAL 请大写 //define('CS_AK','dummy'); //自定义云存储空间的Access Token,通常不需要 //define('CS_SK','dummy'); //自定义云存储空间的Secret Token,通常不需要
基本上,按照这样的设置就可以了。我看有些同学的疑问主要集中在define(‘DOMAIN’,’cdn’)这里,不知道怎么设置才好。其实这里你随便填一个名字就好,填了,它就会自动在你的index.php的同级目录下生成这个名字的目录,里面会存放从你的主站取过来的文件。比如,现在填的是“cdn”,那么它就会自动在你的缓存服务器上生成这个叫“cdn”的目录。另外,你上传文件的目录权限,最好有读写权限,因为要往里面缓存写数据的。
主站的设置
现在,缓存服务器就设置好了,那么现在进行主站的设置。在主站只要将静态资源的URL域名替换成缓存站的就可以了,这样打开网页的时候,LayerLocalCDN就自动将主站的资源取到缓存服务器,然后在下发给用户。
以WordPress为例,只要在functions.php放置以下代码就好:
////自建cdn if ( !is_admin() ) { add_action('wp_loaded','leaf_ob_start'); function leaf_ob_start() { ob_start('leaf_cdn_replace'); } function leaf_cdn_replace($html){ $local_host = 'http://www.baidu.com'; //博客域名 $leaf_host = 'http://img.baidu.com'; //缓存服务域名 $cdn_exts = 'js|css|png|jpg|jpeg|gif|ico'; //扩展名(使用|分隔) $cdn_dirs = 'wp-content|wp-includes'; //目录(使用|分隔) $cdn_dirs = str_replace('-', '\-', $cdn_dirs); if ($cdn_dirs) { $regex = '/' . str_replace('/', '\/', $local_host) . '\/((' . $cdn_dirs . ')\/[^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/'; $html = preg_replace($regex, $leaf_host . '/$1$4', $html); } else { $regex = '/' . str_replace('/', '\/', $local_host) . '\/([^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/'; $html = preg_replace($regex, $leaf_host . '/$1$3', $html); } return $html; } }
将域名改为自己的域名就好。
结束
是不是很简单,大家都学会了没?其实你也可以去寻找免费的CDN来使用的,如果你一定要自己来搭建CDN,我相信LayerLocalCDN是一个很好的选择。
技术流的,看着不是很懂。
会使用就行。
如果没有国内服务器还不如用免费CDN
对的。