通过CDN请求大文件自动断开

网站编辑2022-01-05 14:23:58457

  排查思路
  
  执行以下命令,分析返回结果。
  
  curl -voa http://[$Address]
  
  说明:[$Address]:指CDN的地址。
  

  系统显示类似如下,发现存在“transfer closed with 158206570 bytes remaining to read”报错信息。


  
  从报错信息可知,这个文件大于100MB。从Response Headers分析可以得到以下几个信息:
  
  X-Cache: MISS TCP_MISS dirn:-2:-2表示这是一个MISS的请求,是回源的。
  
  X-Swift-CacheTime: 0表示这个请求是无法缓存到CDN上的,每次都需要回源。
  

  Cache-Control: public, max-age=0表示这里源站响应了max-age=0,是导致CDN无法缓存的原因。


  问题原因
  
  这个是产品层面的一个限制,对于超过100MB的文件,如果源站响应了Cache-Control为max-age=0、no-cache等不缓存的策略,将导致CDN无法缓存,这类请求会被CDN的Swift缓存组件断开。这主要是因为如果大文件请求不执行缓存,那么每次都需要回源,相当于CDN没有起到加速效果,而且对于CDN的回源带宽以及源站的性能都有影响。
  
  解决方案
  
  源站删除不缓存的Cache-Control头,支持CDN可以缓存此类文件。同时,对于大文件,如果源站支持Range,建议CDN层面开启Range回源功能。
  
  操作步骤
  
  1.登录全站加速控制台。
  
  2.在左侧导航栏,单击域名管理。
  
  3.在域名管理页面,单击目标域名对应的配置。
  
  4.在指定域名的左侧导航栏,单击回源配置。
  
  5.在回源配置页签下找到Range回源。
  

  6.打开或关闭Range回源开关。


最新推荐

右侧广告图1
  • CDN/全站加速

    内容分发网络 CDN 是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。

    8.40/年

    限购5个

  • 云安全中心

    通过防勒索、漏洞扫描修复、防病毒、防篡改、合规检查等安全能力,帮助用户实现威胁检测、响应、溯源的自动化安全运营闭环,保护云上主机、本地服务器和容器安全,并满足监管合规要求

    36.00/年

    典名专属折扣

  • 智能外呼机器人

    智能外呼机器人基于语音识别与合成、机器学习和自然语言理解等技术,根据业务场景自动发起智能机器人电话呼叫任务,通过人与机器人的语音对话交互收集业务结果,并对数据加以统计处理,获取用户反馈。

    699.00/月

    限产品首单

右侧广告图2