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