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: