純代碼實現(xiàn)WordPress靜態(tài)文件分離-圖像媒體全部遷移至阿里云(oss)對象存儲,降低服務(wù)器存儲壓力

[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!

雖然自己的 WordPress 博客很早就云化了,用了云服務(wù)器、云數(shù)據(jù)庫、CDN,等等,不過在 WordPress附件云化,其實自己一直都沒有太在意過,只是某一些時間發(fā)現(xiàn)是該云化了,備份博客的Bukcet都已經(jīng)快20G開外了,甚是悲傷,就想到了動靜分離,把靜態(tài)文件比如圖片、css、js等文件放到對象存儲中,這樣可以大量節(jié)省網(wǎng)站服務(wù)器帶寬,同時對靜態(tài)文件做cdn加速來實現(xiàn)網(wǎng)站速度提升。

比如我這個網(wǎng)站,在未做動靜分離前,從源站下載的數(shù)據(jù)有3MB,1000個人同時請求就是3GB,帶寬壓力會比較大。

做動靜分離后,篩選源站下載資源,只有11.5KB,同樣1000個人同時請求,數(shù)據(jù)只有11.5MB,數(shù)據(jù)量壓縮到了原來的1/260。

對于大并發(fā)網(wǎng)站,動靜分離能夠大大減少服務(wù)器帶寬的壓力,有沒有簡單的動靜分離方式?那肯定是有的,有不少插件之類的,寫這篇文章的時候,其實我已經(jīng)用了騰訊云的插件,畢竟我網(wǎng)站也在騰訊云,前段時間也用了這個代碼放阿里云,發(fā)現(xiàn)并不是自己理想中的,就直接變了騰訊云,但也要記錄一下;

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杭州區(qū)的bucket域名
	$static = 'domain.oss-cn-hangzhou.aliyuncs.com'; //填寫css與js的資源域名,示例使用的是阿里云OSS杭州區(qū)的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中即可。

在插入以上代碼后,還需要把你網(wǎng)站的靜態(tài)文件放入對象存儲中,記得uri要一致。你也可以開啟回源來實現(xiàn)自動把服務(wù)器上的文件同步到對象存儲中。

還是拿阿里云OSS舉例,在bucket的基礎(chǔ)設(shè)置->鏡像回源中進行設(shè)置。

點擊這里的設(shè)置按鈕。


點擊創(chuàng)建規(guī)則按鈕。

在這里寫上你網(wǎng)站的域名,其他不需要修改,然后點擊下面的確定即可。


回源設(shè)置完成,之后你網(wǎng)站上的所有圖片、css、js文件都會被轉(zhuǎn)到oss的地址,如果oss上沒有該文件,oss會自動訪問服務(wù)器并把文件同步到oss中。

延伸閱讀:aliyun-oss-support插件

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

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

aliyun-oss-support插件插件特色

支持 Aliyun OSS 的圖片服務(wù)(根據(jù)參數(shù)獲得不同尺寸的圖片)
自定義文件在 Bucket 上的存儲位置
支持 HTTPS 站點
支持阿里云內(nèi)網(wǎng)和 VPC 網(wǎng)絡(luò)
全格式附件支持,不僅僅是圖片
支持 wordpress 4.4+ 新功能 srcset,在不同分辨率設(shè)備上加載不同大小圖片
支持在 WordPress 后臺編輯圖片
支持預(yù)設(shè)圖片樣式,圖片保護,自定義分割符
中英文雙語支持,方便使用英文為默認語言的同學(xué)
支持在其他插件/主題中通過系統(tǒng)鉤子調(diào)用插件功能
代碼遵循 PSR-4 規(guī)則編寫

問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責(zé)聲明》全部內(nèi)容的認可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。 敬請諒解! 侵權(quán)刪帖/違法舉報/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » 純代碼實現(xiàn)WordPress靜態(tài)文件分離-圖像媒體全部遷移至阿里云(oss)對象存儲,降低服務(wù)器存儲壓力

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開發(fā)與維護;網(wǎng)站開發(fā)修改及維護; 各財務(wù)軟件安裝調(diào)試及注冊服務(wù)(金蝶,用友,管家婆,速達,星宇等);同時也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情