一直以来爱游都是想着尽量节约网站成本,提升服务器效率,也就想着把静态资源放OSS,但是静态资源放OSS也是需要付费的,oss很便宜但是流量费就比较贵了,爱游以前的模式是OSS+CDN这样只收取CDN的流量费及HTTPS请求数费用,费用加上服务器大概一个月200左右,这让原本并不富裕的家庭更加雪上加霜了,所以就想换个方式,来节约下成本。
目前爱游用的加速方式是使用WP Super Cache做预缓存+静态资源CDN做分离,这样可以大大的减轻服务器的负担,以下就意义说明。
1.加速第一步:插件
这个直接再后台插件搜索安装即可,然后设置如下:
目前爱游只设置了这两项,其他默认没动,这样就开启了预缓存。
2.加速第二步:后端缓存PHP扩展
opcache 用于加速PHP脚本! 卸载
redis 基于内存亦可持久化的Key-Value数据库
3.静态资源cdn
这个呢爱游踩了一些坑,以前用OSS+CDN设置简单,不用太麻烦,不会出现各种问题,换成百度云加速就需要自己手动设置。
爱游这里用的是百度云,也推荐大家用百度云
首先去百度云加速添加域名,然后设置SSL即可,主要是在服务器上面操作。
这里就会有一个问题出现,当你访问cdn域名时你就会发现网站被镜像了,当然你可以做301转向,但是好像影响性能。
爱游这里的办法是在网站根目录建立一个img文件夹,然后把wp-content目录软连接到img里面。
ln -s /www/wwwroot/网站目录/wp-content /www/wwwroot/网站目录/img
这样img目录里面就会有一个wp-content的软连接目录了。
然后绑定子域名到img目录即可。
这样你访问cdn域名时就会出现403,当然也可以在目录里面建立个index.html让它自动跳转到源站域名
<script type="text/javascript"> /*如果浏览器域名不是 www.vipiu.net 将跳转到 www.vipiu.net 对应的页面*/ if (document.location.host != "www.vipiu.net") { location.href = location.href.replace(document.location.host,'www.vipiu.net'); } </script>
这里还会出现一个问题,就是如果你css里面有调用图标文件,就不显示,出现跨域的问题,只需要我们在nginx配置里面加入允许跨域即可。
#字体允许跨域 location ~* \.(eot|ttf|woff|svg|otf)$ { add_header Access-Control-Allow-Origin *; }
这样就完美解决了所有问题。
注意:还有就是如果是用有些插件或是纯代码来实现cdn可能后台媒体库里面的图片地址会变成cdn域名,这样以后cdn域名失效就会造成文章大面积不显示图片。
用以下代码实现就完美解决了这个问题。
/* 动静分离+静态缓存 */ if ( !is_admin() ) { add_action('wp_loaded','yuncai_ob_start'); function yuncai_ob_start() { ob_start('yuncai_qiniu_cdn_replace'); } function yuncai_qiniu_cdn_replace($html){ $local_host = 'https://oooo.com'; //博客域名 $qiniu_host = 'https://xxxx.com'; //CDN域名 $cdn_exts = 'css|js|png|jpg|jpeg|gif|ico'; //扩展名(使用|分隔) $cdn_dirs = 'wp-content'; //目录(使用|分隔) $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, $qiniu_host . '/$1$4', $html); } else { $regex = '/' . str_replace('/', '\/', $local_host) . '\/([^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/'; $html = preg_replace($regex, $qiniu_host . '/$1$3', $html); } return $html; } }
复制代码放入主题根目录文件functions.php即可
以上就是爱游对WordPress的优化,做的比较肤浅,比不上大佬们,大佬们勿喷,如大佬觉得我做的不对麻烦告知我,我改,毕竟学无止境嘛。
请先
!