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中。

THE END
分享
二维码