纯代码实现WordPress静态文件分离-图像媒体全部迁移至阿里云(oss)对象存储,降低服务器存储压力

[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!

虽然自己的 WordPress 博客很早就云化了,用了云服务器、云数据库、CDN,等等,不过在 WordPress附件云化,其实自己一直都没有太在意过,只是某一些时间发现是该云化了,备份博客的Bukcet都已经快20G开外了,甚是悲伤,就想到了动静分离,把静态文件比如图片、css、js等文件放到对象存储中,这样可以大量节省网站服务器带宽,同时对静态文件做cdn加速来实现网站速度提升。

比如我这个网站,在未做动静分离前,从源站下载的数据有3MB,1000个人同时请求就是3GB,带宽压力会比较大。

做动静分离后,筛选源站下载资源,只有11.5KB,同样1000个人同时请求,数据只有11.5MB,数据量压缩到了原来的1/260。

对于大并发网站,动静分离能够大大减少服务器带宽的压力,有没有简单的动静分离方式?那肯定是有的,有不少插件之类的,写这篇文章的时候,其实我已经用了腾讯云的插件,毕竟我网站也在腾讯云,前段时间也用了这个代码放阿里云,发现并不是自己理想中的,就直接变了腾讯云,但也要记录一下;

function sk_rewrite(){
    ob_start("Rewrite_URI");
} 
add_action('init', 'sk_rewrite');

function Rewrite_URI($html){
	$domain = 'bjlaoliang.com';   //填写主站域名
	$img = 'domain.oss-cn-hangzhou.aliyuncs.com'; //填写图片资源域名,示例使用的是阿里云OSS杭州区的bucket域名
	$static = 'domain.oss-cn-hangzhou.aliyuncs.com'; //填写css与js的资源域名,示例使用的是阿里云OSS杭州区的bucket域名
	$html = preg_replace('/http(s|):\/\/'.$domain.'\/wp-([^"\']*?)\.(jpg|png|gif|bmp|jpeg)/i','//'.$img.'/wp-$2.$3',$html); //把图片链接替换成远程路径
	$html = preg_replace('/http(s|):\/\/'.$domain.'\/wp-([^"\']*?)\.(css|js)/i','//'.$static.'/wp-$2.$3',$html);//把css及js链接替换成远程路径
	return $html; 
}

把上方代码放入主题文件的functions.php中即可。

在插入以上代码后,还需要把你网站的静态文件放入对象存储中,记得uri要一致。你也可以开启回源来实现自动把服务器上的文件同步到对象存储中。

还是拿阿里云OSS举例,在bucket的基础设置->镜像回源中进行设置。

点击这里的设置按钮。


点击创建规则按钮。

在这里写上你网站的域名,其他不需要修改,然后点击下面的确定即可。


回源设置完成,之后你网站上的所有图片、css、js文件都会被转到oss的地址,如果oss上没有该文件,oss会自动访问服务器并把文件同步到oss中。

延伸阅读:aliyun-oss-support插件

aliyun-oss-support插件下载地址:

https://github.com/IvanChou/aliyun-oss-support

aliyun-oss-support插件插件特色

支持 Aliyun OSS 的图片服务(根据参数获得不同尺寸的图片)
自定义文件在 Bucket 上的存储位置
支持 HTTPS 站点
支持阿里云内网和 VPC 网络
全格式附件支持,不仅仅是图片
支持 wordpress 4.4+ 新功能 srcset,在不同分辨率设备上加载不同大小图片
支持在 WordPress 后台编辑图片
支持预设图片样式,图片保护,自定义分割符
中英文双语支持,方便使用英文为默认语言的同学
支持在其他插件/主题中通过系统钩子调用插件功能
代码遵循 PSR-4 规则编写

问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 纯代码实现WordPress静态文件分离-图像媒体全部迁移至阿里云(oss)对象存储,降低服务器存储压力

发表回复

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情