经过N天的努力,WordPress终于加上阿里云CDN

这段时间,够折腾,一边找工作,一边升级博客,终于博客加上CDN。

期间痛苦无比,说实话,对CDN久仰大名,但是没有操作经验,以为上手很简单,哪只.....(此处省略10000字)。

作为音乐博客,为航友们提供优质的试听效果,这是最基本的服务。前几天,好不容易说服媳妇,让她同意采购CDN服务,这不急赶赶的就扎进去,哪知道一下没有爬出来: (

期间遇到各种问题,特纪录如下:

1、前台输入账号和密码后,系统跳转到首页,并且登录状态还是“未登录”。

这个问题经过3天的排查,在阿里售后工程师的帮助下,发现把很多php文件也同步到CDN里面,致使创建的session不在同一个域下面,因此无法登录。

解决办法:把所有缓存过期时间都设为0秒,同时进行全站目录刷新缓存,大约半小时后能见到效果;你会发现,又可以登录久违的后台了。

2、子域名无法加载字体等文件

出现这个问题,是因为在阿里云CDN-缓存配置-设置HTTP头,要配置三个参数,分别为:

Access-Control-Allow-Origin、Access-Control-Max-Age、Access-Control-Allow-Headers,详细信息请见度娘。

3、白名单机制

如果需要限制该资源仅通过您的主站来访问的话,那么在cdn的白名单中添加下域名即可,设置方法请参考:https://help.aliyun.com/document_detail/27134.html?spm=5176.doc27125.2.11.dzmmlO

4、银色乐航添加CDN,需要注意的关键项

1)、博客要动静分离,启用一个子域名,如res.imoongo.com,并且域名解析到博客所在的资源路径,比如你可以直接解析(A)到主服务器IP地址。

2)、在主题的functions.php里面加上如下代码,以解决把相关后缀名缓存到cdn.imoongo.com里面。

/**
* CDN/静态域名替换函数(可用于七牛等CDN)
* 相关文章:http://zhangge.net/5047.html
**/
ob_start("Static_Switch");
function Static_Switch($buffer){
$buffer_out = preg_replace('/http:\/\/imoongo\.com\/wp-([^"\']*?)\.(jpeg|jpg|png|gif|css|js|woff|woff2|ttf|svg|eot|mp3)/i','//cdn.imoongo.com/wp-$1.$2',$buffer);
return $buffer_out;
}
第一个是你博客主域名,第二个是cdn域名。

感谢张戈同学无私奉献!

3)、一定要对主域名配置CDN,如imoongo.com,同时域名解析里面把该域名CNAME到你创建cdn的地址,一般格式都是imoongo.com.w.kunlungr.com这种命名方式。

4)、源站设置,一般选择

5)、配置CDN的回源host,你可以指向上述的主域名imoongo.com。

6)、设置缓存过期时间,所有以php结尾、/login别名结尾的都需要设置为0秒,就是动态数据不缓冲;

另外2个主要目录最好不要缓存:/wp_admin和/wp-includes;其余后缀可以根据需要设置缓存时间。

7)、带宽峰值最好设置一个阀值,比如100M之类的;可以根据你的并发量考虑。

8)、开启性能优化里面的页面优化、智能压缩。

9)、如果安装了插件WP Super Cache ,一定要开启里面的CDN开关,同时Site URL里面填写你网站的主域名,Off-site URL填写CDN域名,即:https://imoongo.com。

一般,如果按照上述要求,可以把WordPress和阿里云CDN进行完美配置。

经过这段时间的锤炼,发现技术有时候就是不断折腾,不断折腾,不断折腾,重要的事情说三遍,呵呵。

下一步,加上ssl,搞个https,这样安全性更好些。

如有问题,下面留言即可,欢迎讨论~

11 评论

@狂放 嘿,有时候妻管严挺好,有时候不行,要看场景:),一年千把块费用,还是可以的,能承受这点压力。
毕竟还是个人爱好,坚持下去,或者有意想不到过程。

发表评论