

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跨境小程序
手机入驻更便捷
返回顶部