>>>>>> 文章點閱數:2,618 <<<<<<

Layer CDN不同于以往CDN供应商,
而是采取自建的模式架设,
类似建立镜像站点,
可以选择访问速度快但品质普通的php主机进行架设,
若有主机储存采用SSD是最理想的选择,
可以降低传送资料所需的反应时间。

 

Layer CDN官网 https://github.com/oott123/Layer (衍生版)

layer

首先进入GitHub的Layer页面的右下方Download ZIP下载程式

layer2

解压缩

layer3

以文字编辑程式开启config.sample.inc.php

layer4

替换原始站点网址、存放快取档案的资料夹名称、是否显示欢迎页面、防盗链设定

经过测试,进阶设定必须进行其他设定才能使静态档案真正缓存到CDN主机,并提高安全性

define(‘PURGE_KEY’,’purge’); 这里purge请随意填写(乱打即可,未来更新档案的方式直接透过FTP删除快取资料夹即可)

define(‘DIRECT_EXT’,’php|asp|htm|html’); 这里只留php即可,即为 define(‘DIRECT_EXT’,’php’);

define(‘NO_LOCATE’,false); 这里请改成true,以Google的说法应尽量减少301跟302跳转,即为 define(‘NO_LOCATE’,true);

define(‘NO_KEY’,true); 经过测试,若不启用MD5编码作为档名,将会造成档案无法缓存,使CDN主机频繁向原始主机请求,故改成 define(‘NO_KEY’,false);

高级设定只需修改

//define(‘RUN_ENV’, ‘GCS’); 这行将前面//去除,并将GCS修改成LOCAL,即为 define(‘RUN_ENV’, ‘LOCAL’);

针对比较复杂的防盗链,可以选择不设定,也可以复制第二行

define(‘ALLOW_REGX’,’^(best33\.com|.*\.best33\.com)$’); 到define(‘ALLOW_REGX’,’.*’);覆盖,并修改best33与com为您自己的网站

有一点可能要留意,由于系统架设可能会牵扯到自动化请求的问题,对于这类的主机,建议将

define(‘WELCOME_DOC’,TRUE); 改成false,使欢迎页面不显示,以免遭到主机商侧目而停止服务

layer5

配置范例

layer6

完毕后另存新档为config.inc.php,将整份Layer资料夹内容上传到PHP主机

layer7

确认连线正常后,修改WordPress快取外挂的CDN连结(下图引用自CDNSun教学)

hyper2

此时站点的图片JS与CSS素材就会经由PHP主机传输。

如果站点为https连线,建议CDN站点所使用的SSL证书与原始站点相同,防止一个页面使用多张证书,缩短请求时间。

Layer CDN范例图档 透过https://img.hzsh.usCDN站点传输

hzshsitehomepage如果用无痕开启图片的连结,就可以看到防盗链的效果喔!

由于目前允许使用CDN的主机只有VPS,这样反而会建议使用LuManageCDNbest免费系统,其中LuManage可以支援SSL(或透过Apache的SSL模组安装也可以支援)

或是直接启用Apache的Proxy模组也可以达到同样效果,但对于防盗链与SSL的配置可能会有点麻烦,但快取效果还蛮不错的。

小提示,OpenShift选PHP5.4,透过sFTP上传程式到app-root>runtime>repo资料夹

[新增]
最近测试以GAE架设CDN(SymPullCDN),效果同样不错,可惜没有提供防盗链的功能,而且对于主机不再美国的源站传输会有超时的问题,可以把源站交由OpenShift缓存,再由GAE传送。

SymPullCDN GitHub官网 https://github.com/symkat/SymPullCDN (Python26)

gaecdn1

SymPullCDN GitHub分支 https://github.com/itsbalamurali/sympullcdn (Python27)

Google App Engine官网 https://cloud.google.com/appengine/docs

经过测试,建议要使用自订网域到GAE上面,然后透过CloudXNS限制单一国家访问GAE,其他地区全部指向OpenShift(或源站)才能解决GAE常出现的500错误!

[新增 2016/4/9]

测试撷取其他主机商的站点发现由于程序没有配置USER AGENT,
导致回传403禁止访问的讯息,请到程序的/include/lib.php进行配置

请在第40行(下图红色线处)新增一行(Mozilla/5.0可以自订内容)

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0");

即可将USER AGENT新增到LayerCDN供源站点辨识。

layer8

Layer CDN-自建简易CDN站点
Tagged on:         
2,618

5 thoughts on “Layer CDN-自建简易CDN站点

  • 2015-09-13 at 11:47 下午
    Permalink

    这几天测试普通主机自建的CDN效果的确不错
    只是测试的网域有时候解析失败比较麻烦
    本站CDN目前改采国外Amazon主机自建CDN
    效果不错,档案传输延迟也不高
    刚好这几天发现CloudFlare台湾中华电信连线一直不稳定
    换CDN方案试试也不错,如果没问题应该就会持续运作下去…

    • 2015-09-15 at 12:11 上午
      Permalink

      刚刚更新一些资料
      设定正确就能正常缓存

  • 2015-12-03 at 8:24 下午
    Permalink

    考量到Google在台湾有伺服器,
    免费的GAE服务倒是可以搭建CDN,
    搭建教学请参考 http://www.techelex.org/free-wordpress-cdn/
    但是程式来源改成新的 https://github.com/itsbalamurali/sympullcdn
    因为要支援Python27并维持CDN活跃状态,旧程序运行容易出现错误
    另外就是,这种Pull CDN因为GAE主机在美国,
    原始主机(要被快取内容的站点)务必要使用请求时间不用太长的美国主机
    如果主机不在美国,建议先用LayerCDN在美国建立节点然后再交由GAE接收,
    再透过台湾主机Memcache传送。
    值得留意的是,GAE传送速度也会有限制,
    我们只用在台湾快取,可以透过CloudXNS( https://www.cloudxns.net )
    只让台湾解析到Google的IP(注意,请用IP解析,如果改用CNAME解析容易出问题)
    其他地区解析到另外搭建的镜像主机或是原始主机,
    就可以顺利使用GAE搭建Pull CDN。

    另外还有一点,笔者透过GooglePageSpeed测试各国主机镜像,
    发现使用美国镜像指定解析"谷歌"比较不会有主机反应时间过长的问题,
    因为Google认为请求反应时间超过200ms就是过慢,分数会多扣一些…

Comments are closed.