Skip to main content
 首页 » 网络技术

wordpress部署又拍云CDN加速教程

2016年03月25日115

对于cdn加速相信不管是哪一类的站长都不陌生,毕竟网站加速是每个站长都关注的事情,而使用cdn加速静态资源对于网站的加速优化又占到了很大的比重。国内主流的CDN加速也就那么几家,七牛,又拍云,阿里云,腾讯云等等,本人也就经常用腾讯云和又拍云,相信大家也了解过这俩家。

那么我们直接进入话题,想要不安装插件开启又拍云CDN其实很简单,我们首先到又拍云创建服务,选择自主源站然后添加相关信息,加速域名填写一个二级域名,回源填写自己的网站域名,端口安装你网站的访问端口填写,一般都为80端口,不过在这里我提前说一下,必须把自己的加速域名绑定在自己的网站主机上,否则无法访问,如图选择:

又拍云

下一步跳过授权员,我们点击服务管理,把加速域名别名解析在又拍云指定的二级域名上,服务管理里面需要什么功能自行设置,建议开启代码压缩,镜像存储,外链功能

又拍云别名解析

前面我们完工以后将代码如下(加到functions.php文件即可),记得的修改相关内容,四个参数可以根据你自己的需求来自定义,其中网站域名和cdn域名是必须替换成你自己的,这里和大家说一下,七牛CDN,腾讯云CDN,阿里云CDN都是可以一起使用的,记得一定要开启镜像存储.

define('FocusCDNHost','http://xiangta.cc');//访问网站网址
define('FocusCDNRemote','http://up.xiangta.cc');//网站cdn域名
define('FocusCDNIncludes','wp-content,wp-includes');//加速目录
define('FocusCDNExcludes','.php|.xml|.html|.po|.mo');//文件白名单
define('FocusCDNRelative','');//Check this if you want to have links like <wp-content/abc.png> rewritten - i.e. without your blog's domain as prefix.
  
function do_cdnrewrite_ob_start() {
$rewriter = new FocusCDNRewriteWordpress();
$rewriter->register_as_output_buffer();
}
add_action('template_redirect', 'do_cdnrewrite_ob_start');
  
class FocusCDNRewriteWordpress extends FocusCDNRewrite
{
function __construct() {
$excl_tmp = FocusCDNExcludes;
$excludes = array_map('trim', explode('|', $excl_tmp));
  
parent::__construct(
FocusCDNHost,
FocusCDNRemote,
FocusCDNIncludes,
$excludes,
!!FocusCDNRelative
);
}
public function register_as_output_buffer() {
if ($this->blog_url != FocusCDNRemote) {
ob_start(array(&$this, 'rewrite'));
}
}
  
}
  
class FocusCDNRewrite {
var $blog_url    = null;
var $cdn_url     = null;
var $include_dirs   = null;
var $excludes    = array();
var $rootrelative   = false;
  
function __construct($blog_url, $cdn_url, $include_dirs, array $excludes, $root_relative) {
$this->blog_url   = $blog_url;
$this->cdn_url    = $cdn_url;
$this->include_dirs  = $include_dirs;
$this->excludes   = $excludes;
$this->rootrelative  = $root_relative;
}
  
protected function exclude_single(&$match) {
foreach ($this->excludes as $badword) {
if (stristr($match, $badword) != false) {
return true;
}
}
return false;
}
  
protected function rewrite_single(&$match) {
if ($this->exclude_single($match[0])) {
return $match[0];
} else {
if (!$this->rootrelative || strstr($match[0], $this->blog_url)) {
return str_replace($this->blog_url, $this->cdn_url, $match[0]);
} else {
return $this->cdn_url . $match[0];
}
}
}
  
protected function include_dirs_to_pattern() {
$input = explode(',', $this->include_dirs);
if ($this->include_dirs == '' || count($input) < 1) {
return 'wp\-content|wp\-includes';
} else {
return implode('|', array_map('quotemeta', array_map('trim', $input)));
}
}
  
public function rewrite(&$content) {
$dirs = $this->include_dirs_to_pattern();
$regex = '#(?<=[(\"\'])';
$regex .= $this->rootrelative
? ('(?:'.quotemeta($this->blog_url).')?')
: quotemeta($this->blog_url);
$regex .= '/(?:((?:'.$dirs.')[^\"\')]+)|([^/\"\']+\.[^/\"\')]+))(?=[\"\')])#';
return preg_replace_callback($regex, array(&$this, 'rewrite_single'), $content);
}
  
}