什么是對象存儲的回源功能
對象存儲的鏡像回源功能是指,當網站的用戶請求的資源不存在的時候,可以通過回源規則從設定的源地址獲取到正確的數據,然后再返回給網站的用戶。
博客上的圖片,CSS,JS 這些靜態文件一般都是不會經常修改的,使用鏡像回源功能把這些靜態文件資源鏡像到對象存儲的服務器上,網站用戶訪問的時候就直接從云存儲的服務器上讀取數據,這樣可以降低網站服務器讀取數據的壓力和提高網站的速度。
XinTheme所有的付費WordPress主題內置的「對象儲存」就是使用的鏡像回源功能。
并且并不影響博客的原來使用體驗,原來怎么上傳圖片還是繼續在網站中怎么操作即可。
鏡像回源的操作過程和原理
簡單說,鏡像回源的操作過程和原理是這樣的,以阿里云OSS為例:
比如我博客上有一張圖片:http://www.dahuzi.me/img/logo.png
,它的域名是?www.dahuzi.me
在阿里云OSS里面新建一個空間,比如 dahuzi,綁定一個?img.dahuzi.me
?的域名,然后設置鏡像回源,“回源地址”設為?www.dahuzi.me
。
現在就可以通過?http://img.dahuzi.me/img/logo.png
?這個地址訪問到保存在博客上的那張圖片了。
說明:我博客上的任意一張圖片,只要它的源站地址是?www.dahuzi.me
,就可以通過將它改成?img.dahuzi.me
?訪問到。
每次通過?img.dahuzi.me
?訪問到某張圖片的時候,它就會被永久保存在阿里云 OSS 上(除非你手動把它刪除),然后每次終端用戶訪問到的時候都會通過阿里云的 CDN 分發出去,從而實現加快WordPress網站加載速度的功能。
使用鏡像回源需注意的地方
只有當對象存儲上沒有對應資源情況下,對象存儲才會執行鏡像回源,向源站請求文件。
假設文件已經通過鏡像回源寫到了對象存儲,如果源站的相同文件發生了變化,對象存儲不會更新已經存在于對象存儲上的文件,因為此時文件已經在對象存儲上,不符合鏡像回源的條件,所以:
在源站修改了 CSS 或者 JS 文件,對象存儲是不會自動更新的。
那怎么辦?你可以:
1、上對象存儲手動更新對應的文件。
2、更改文件名,讓對象存儲重新鏡像一個新的文件。
鏡像回源功能看起來和傳統的 CDN 比較像,兩種都會在數據不存在的時候回源站抓取,不同之處在于,鏡像回源是存儲不是緩存,故此鏡像存儲對每個資源來說只回源一次,后續訪問的時候就不再回源了。
如果終端用戶第一次訪問某個資源,終端用戶首先從對象存儲上訪問資源,再讓對象存儲回源站取資源,然后將取回的資源緩存在對象存儲上。因此,第一次訪問會有一定的延時,可能比從源站取稍微慢一點,這是正常的,但是第二次第三次訪問就可以直接從對象存儲上取,一般情況下比從源站取資源會快很多。
也正因為鏡像存儲第一次取資源時會有延時,因此不推薦鏡像文件大小超過 5M 的大文件資源,否則第一次訪問會很慢或者出現服務器超時等錯誤。
網站上的圖片鏡像到對象存儲之后,是否可以刪除服務器上的圖片,答案是可以的,但是強烈建議不要進行此項操作,因為現在主機空間費用非常低廉,購買一個大點的空間也花不了多少錢。另外圖片多保存一份在自己的服務器上也是好的。
加速功能為什么使用鏡像回源
我們的WordPress主題為什么使用鏡像回源而不用對象存儲提供的 API 對接?
使用 API 對接需要大量時間去對接,并且每家對象存儲提供商的 API 都有一些不同,所以每次對接都要花費時間,而每家對象存儲的鏡像回源功能基本一致,并且 API 對接還會存在一定失敗率。
使用鏡像回源功能可以將已經發布的文章里面的圖片也鏡像到對象存儲上面,你只需要按照使用文檔設置好就行,其他什么都不用做,網站上所有圖片都會全部鏡像到對象存儲里面。
新主題官方微信公眾號
掃碼關注新主題(XinTheme)官方公眾號,本站動態早知道。
發布本站最新動態(新主題發布、主題更新)和WordPress相關技術文章。