功能介绍
Range回源,是指CDN节点收到用户请求后,会在回源时携带Range请求头,源站在收到Range请求后,会返回对应范围的内容数据给CDN。Range回源功能开启后,CDN节点可以以分片的形式缓存文件,对于Range请求而言,可以有效提高文件分发效率,降低首包时延,同时提高缓存利用率,减少不必要的回源。
开启和关闭Range回源功能时,相应的情况如下:
- 关闭Range回源
- 客户端发起Range请求,CDN节点无缓存时,默认透传客户端Range请求回源,无论源站响应206或200状态码,CDN均不做缓存,并透传源站的状态码和内容给客户端。
- 客户端发起完整文件请求,CDN节点无缓存时,透传客户端请求回源,源站响应200状态码,CDN缓存文件,并响应200状态码及内容给客户端。
- 开启Range回源
- 无论客户端发起的是否Range请求,CDN节点无缓存时,均按配置的Range分片大小回源,如源站响应206状态码,则CDN缓存对应分片内容,并响应206(如客户端为Range请求)或200(如客户端为完整文件请求)给客户端。
- 客户端发起Range请求,CDN有Range范围的文件内容缓存时,直接响应206状态码及对应范围缓存内容给客户端。
Range回源功能默认关闭,CDN以客户端的请求方式回源,即有无Range请求头都将透传至源站。
注意如果客户端有Range请求,CDN默认无法缓存对应文件,需要开启完整文件回源或Range回源功能,详情请见:CDN加速如何缓存Range请求。
适用场景
客户端存在Range请求,且源站支持Range,可响应指定范围内的内容数据时,建议开启Range回源功能,以提高文件分发效率及缓存利用率。
一般源站内容存在视频、APP等大文件场景下,建议开启Range回源功能。
注意事项
- 开启Range回源前需确认源站是否支持Range请求,即源站能够响应对应范围内的206文件分片内容,同时需确认源站响应头中是否包含Transfer-Encoding: chunked头部。如果源站不支持Range请求,或源站可能响应Transfer-Encoding: chunked头部,可提交工单申请配置“完整文件回源”功能,该功能开启后,客户端发起Range请求时,CDN节点将会回源获取完整文件,并缓存下来,同时响应Range范围的数据。
注意如客户端请求的Range范围位置靠后,开启完整文件回源功能后,首次请求客户端需要等待较长时间才能获取Range内容,分发效率较低。
- 开启Range回源时,CDN会将用户请求(无论原始请求是否为Range请求)拆分成若干个Range请求回源,以一个100MB的文件为例,在Range回源开启时,CDN获取完整文件需要回源100次,一定程度上会增加回源访问请求数和并发量,请合理设置分片大小。默认Range分片大小为1MB,即:如果客户端请求Range: bytes=0-100,则在CDN节点回源时会将Range请求扩大为1MB。
- 请在新增域名时明确是否开启Range回源,以及开启Range回源的具体分片大小;一旦域名CNAME至我司产生流量后,建议不要轻易变更Range回源功能开启状态以及分片大小,否则可能会产生较高回源;如确实有调整需求,请在提交工单时特殊说明。
配置说明
该功能暂不支持客户自助配置,如需使用,请通过提交工单给天翼云客服,由其人工操作开启。
提交工单时,请您提供如下信息:
- 回源分片大小,默认为1MB;如需设置为其他值,请详细说明。
- 开启分片范围,默认为域名粒度;如需设置为仅部分文件,请说明具体的文件范围,例如xx目录,或xx文件后缀(如.mp4、.flv等)。