我们平时做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中。
本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/444112.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除