Azure Front Door 的緩存,一文介紹azure front doorAzure前門緩存以下文檔詳細(xì)介紹了啟用緩存的路由規(guī)則時(shí)前門的行為。前門是一個(gè)現(xiàn)代化的內(nèi)容交付網(wǎng)絡(luò)(CDN ),具有動(dòng)態(tài)網(wǎng)站加速和負(fù)載平衡功能。就像任何其他CDN一樣,它也支持緩存行為。大型文件遞快遞Azure前門服務(wù)可以在不限制文件大小......
以下文檔詳細(xì)介紹了啟用緩存的路由規(guī)則時(shí)前門的行為。前門是一個(gè)現(xiàn)代化的內(nèi)容交付網(wǎng)絡(luò)(CDN ),具有動(dòng)態(tài)網(wǎng)站加速和負(fù)載平衡功能。就像任何其他CDN一樣,它也支持緩存行為。
Azure前門服務(wù)可以在不限制文件大小的情況下交付大文件。前門使用了一種叫做對(duì)象塊的技術(shù)。當(dāng)請(qǐng)求一個(gè)大文件時(shí),前門將從后端檢索文件的一小部分。在收到完整的或字節(jié)范圍的文件請(qǐng)求后,前門環(huán)境以8 MB為塊從后端請(qǐng)求文件。
到達(dá)前門環(huán)境后,塊將被緩存并立即提供給用戶。然后,前門將并行預(yù)取下一個(gè)塊。這種預(yù)提取確保了內(nèi)容總是領(lǐng)先用戶一個(gè)塊,從而減少了延遲。此過程將持續(xù)到下載完整個(gè)文件(如有必要)或客戶端關(guān)閉連接。
有關(guān)字節(jié)范圍請(qǐng)求的詳細(xì)信息,請(qǐng)閱讀RFC 7233。前門將在接收到任何塊后緩存它們,因此整個(gè)文件不需要緩存在前門緩存中。則從高速緩存請(qǐng)求文件或字節(jié)范圍請(qǐng)求。如果數(shù)據(jù)塊沒有全部緩存,預(yù)取將用于從后端請(qǐng)求數(shù)據(jù)塊。這種優(yōu)化依賴于后端支持字節(jié)范圍請(qǐng)求的能力。如果后端不支持字節(jié)范圍請(qǐng)求,此優(yōu)化將不會(huì)生效。
前門可以動(dòng)態(tài)壓縮邊緣內(nèi)容,從而更快地響應(yīng)客戶端。為了使文件滿足壓縮條件,必須啟用緩存,并且文件必須是要壓縮的MIME類型。目前,前門不允許更改此列表。當(dāng)前列表是:
應(yīng)用/eot
應(yīng)用程序/字體
應(yīng)用程序/字體sfnt
應(yīng)用程序/javascript
應(yīng)用程序/json
應(yīng)用程序/opentype
應(yīng)用/otf
應(yīng)用程序/pkcs7mime
應(yīng)用程序/truetype
申請(qǐng)/ttf,
應(yīng)用程序/vnd.msfontobject
應(yīng)用程序/xhtml+xml
應(yīng)用程序/xml
應(yīng)用程序/xml+rss
應(yīng)用程序/xfontopentype
應(yīng)用程序/xfonttruetype
應(yīng)用程序/xfontttf
應(yīng)用程序/xhttpdcgi
應(yīng)用/xmpegurl
應(yīng)用程序/xopentype
應(yīng)用程序/xotf
應(yīng)用程序/xperl
應(yīng)用/xttf
應(yīng)用程序/xjavascript
字體/eot
字體/ttf
字體/otf
字體/opentype
圖像/svg+xml
文本/css
文本/csv
文本/html
文本/javascript
文本/js,文本/純文本
文本/richtext
文本/制表符分隔值
文本/xml
文本/x腳本
文本/x組件
文本/xjavasource
此外,文件大小必須介于1 KB和8 MB之間(包括這兩個(gè)值)。
這些配置文件支持以下壓縮編碼:
GNU zip
布羅特利
如果請(qǐng)求同時(shí)支持gzip和Brotli壓縮,則Brotli壓縮優(yōu)先。如果對(duì)資產(chǎn)的請(qǐng)求指定了壓縮,但是該請(qǐng)求導(dǎo)致了緩存未命中,那么Front Door將在POP服務(wù)器上直接壓縮該資產(chǎn)。此后,將從緩存中提供壓縮文件。生成的項(xiàng)通過transferencoding: chunked返回。
評(píng)論
范圍請(qǐng)求可以被壓縮成不同的大小。Azure Front Door要求任何GET HTTP請(qǐng)求的contentlength值都相同。如果客戶端發(fā)快遞帶有acceptencoding頭的字節(jié)范圍請(qǐng)求,導(dǎo)致源以不同的內(nèi)容長度響應(yīng),Azure Front Door將返回503服務(wù)不可用。您可以在source /Azure前門上禁用壓縮,或者您可以創(chuàng)建一個(gè)規(guī)則集規(guī)則來從字節(jié)范圍請(qǐng)求中刪除acceptencoding。
使用Front Door,您可以控制如何為包含查詢字符串的Web請(qǐng)求緩存文件。在包含查詢字符串的Web請(qǐng)求中,查詢字符串是一個(gè)問號(hào)(?)請(qǐng)求后。查詢字符串可以包含一個(gè)或多個(gè)鍵值對(duì),其中字段名稱和它們的值由等號(hào)(=)分隔。每個(gè)鍵值對(duì)由一個(gè)&符號(hào)()分隔。例如,http://www.contoso.com/content.mov 字段1 =值1字段2 =值2。如果請(qǐng)求的查詢字符串中有多個(gè)鍵值對(duì),順序并不重要。
忽略查詢字符串:在這種模式下,在第一次請(qǐng)求時(shí),F(xiàn)ront Door將查詢字符串從請(qǐng)求者傳遞到后端,并緩存資產(chǎn)。所有后續(xù)的由前門環(huán)境處理的資產(chǎn)請(qǐng)求將忽略查詢字符串,直到緩存的資產(chǎn)過期。
緩存每個(gè)唯一的URL:在這種模式下,包含唯一URL(包括查詢字符串)的每個(gè)請(qǐng)求都將被視為唯一擁有自己的緩存的資產(chǎn)。比如后端對(duì)www.example.ashx?q=test1的請(qǐng)求做出的響應(yīng)將被緩存在前門環(huán)境中,并且它將被返回給具有相同查詢字符串的后續(xù)緩存。www.example.ashx?q=test2的請(qǐng)求將被緩存為單獨(dú)的資產(chǎn),具有自己的生命周期設(shè)置。
前門將緩存資產(chǎn),直到資產(chǎn)的生存時(shí)間(TTL)到期。每當(dāng)客戶端請(qǐng)求的資產(chǎn)的TTL過期時(shí),前門環(huán)境將檢索資產(chǎn)的新的和更新的副本以提供請(qǐng)求,然后存儲(chǔ)刷新的緩存。
確保用戶總是獲得資產(chǎn)的最新副本的最佳實(shí)踐是為每次更新對(duì)資產(chǎn)進(jìn)行版本控制,并將其作為新的URL發(fā)布。前門將立即為下一個(gè)客戶請(qǐng)求檢索新資產(chǎn)。有時(shí),您可能希望清除所有邊緣節(jié)點(diǎn)的緩存內(nèi)容,并強(qiáng)制它們檢索所有新的和更新的資產(chǎn)。原因可能是Web應(yīng)用程序的更新,或者包含錯(cuò)誤信息的資產(chǎn)的快速更新。
選擇要從維邊節(jié)點(diǎn)中清除的資產(chǎn)。要清除所有資產(chǎn),請(qǐng)選擇全部清除。否則,在路徑中,輸入要清除的每個(gè)資產(chǎn)的路徑。
要清除的路徑列表支持以下格式:
單路徑清除:通過指定完整路徑(不包括協(xié)議和域)并包括文件擴(kuò)展名(例如/pictures/strasbourg.png)來清除單個(gè)資產(chǎn);
通配符清除:星號(hào)(*)可以用作通配符。清除路徑中帶有/*的端點(diǎn)下的所有文件夾、子文件夾和文件,或者通過指定后跟/*的文件夾(例如/pictures/*)來清除特定文件夾下的所有子文件夾和文件。
根域清理:清理路徑中帶有“/”的端點(diǎn)的根。
評(píng)論
清除通配符域:本節(jié)中描述的指定用于清除的緩存路徑不適用于任何與前門關(guān)聯(lián)的通配符域。目前不支持直接清除通配符域名。通過指定特定子域并清除路徑,可以清除特定子域中的路徑。例如,如果我的前門有*.contoso.com,我可以輸入foo.contoso.com/path/*來清除子域foo.contoso.com的資產(chǎn)。目前,要在清除內(nèi)容的路徑中指定主機(jī)名,僅限于通配符域的子域(如果適用)。
前門緩存清理不區(qū)分大小寫。此外,它們對(duì)查詢字符串不敏感,這意味著當(dāng)您清除一個(gè)URL時(shí),其查詢字符串的所有變體都將被清除。
按以下標(biāo)題順序確定項(xiàng)目在緩存中的存儲(chǔ)時(shí)間:
緩存控制:smaxage =秒
緩存控制:最大年齡=秒
過期時(shí)間:httpdate
諸如CacheControl: private、CacheControl: nocache和CacheControl: nostore等CacheControl響應(yīng)頭是首選的。如果沒有CacheControl,默認(rèn)行為是前門緩存資源的時(shí)間長度為X,其中X的隨機(jī)選擇時(shí)間為1到3天。
使用緩存時(shí),以下請(qǐng)求頭不會(huì)轉(zhuǎn)發(fā)到后端。
內(nèi)容長度
傳輸編碼
您可以在Front Door Designer交付規(guī)則和規(guī)則引擎中配置緩存行為和持續(xù)時(shí)間。引擎緩存配置將始終替換前門設(shè)計(jì)器傳快遞規(guī)則配置。
禁用緩存時(shí),無論源響應(yīng)指令如何,前門都不會(huì)緩存響應(yīng)內(nèi)容。
啟用緩存時(shí),對(duì)于“使用緩存默認(rèn)持續(xù)時(shí)間”的不同值,緩存行為會(huì)有所不同。
當(dāng)“使用緩存默認(rèn)持續(xù)時(shí)間”設(shè)置為“是”時(shí),前門始終采用源響應(yīng)頭指令。如果源指令丟失,F(xiàn)ront Door將在1到3天內(nèi)將內(nèi)容緩存到任何地方。
當(dāng)“使用緩存默認(rèn)持續(xù)時(shí)間”設(shè)置為“否”時(shí),前門將始終替換“緩存持續(xù)時(shí)間”(必填字段),這意味著它將緩存緩存持續(xù)時(shí)間的內(nèi)容,忽略源響應(yīng)指令中的值。
評(píng)論
前門設(shè)計(jì)師交付規(guī)則中設(shè)置的“緩存持續(xù)時(shí)間”是“最小緩存持續(xù)時(shí)間”。如果源的緩存控制頭的TTL大于覆蓋值,此覆蓋將無效。
如果緩存的內(nèi)容不經(jīng)常被請(qǐng)求,它可能會(huì)在過期前被逐出Azure前門,以便為更頻繁請(qǐng)求的內(nèi)容騰出空間。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部