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