纯代码实现wordpress静态文件分离到阿里云oss

我们平时做wordpress网站基本都会做动静分离,把静态文件比如图片、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 = 'domain.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中。

声明:
1.本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。请发送邮件至:chensi2024@foxmail.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明
4.如下载链接失效,请在当前页留言或私信管理员,24小时必处理结束!
5.本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。
6.本站提供的资源仅限用于学习交流和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险以及产生法律纠纷与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除。

给TA打赏
共{{data.count}}人
人已打赏
网站建设

WordPress文章被自动删除![已解决]

2020-7-23 21:53:13

网站建设

WordPress后台密码忘记不用慌 一招极速找回

2020-8-1 2:38:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索