内容分发网络 CDN
内容分发网络 CDN
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
-
功能咨询
- 什么是全站加速(WSA)?
- CDN支持哪些业务类型?
- CDN支持中国大陆境外或全球加速吗?
- CDN支持DNS,HTTPDNS,IP302这三种调度方式吗?
- CDN支持哪些协议?
- CDN点播加速支持HLS和RTMP协议吗?
- CDN能否区分用户使用电脑端还是手机端访问?
- CDN支持针对网站单个页面加速吗?
- CDN是否支持二进制文件加速?
- CDN支持二级域名加速么?
- CDN是否可以对网站的Post请求进行加速?
- CDN是否支持直播加速?
- CDN有速度限制吗?
- CDN能否加速本地访问购物网站的速度从而抢购商品?
- CDN支持哪些源站类型?
- 华为云CDN是否支持对中文域名的加速?
- 华为云CDN是否支持HTTP3.0?
- 华为云CDN是否支持对内容进行加密后再分发给用户?
- 华为云CDN支持内网加速吗?
- 华为云CDN可以提供所有的节点IP地址和回源IP地址吗?
- 是否支持CDN域名配置从现有账号迁移至华为云另一个账号?
- 加速静态和动态资源的原理是否一样?
- 如何停止CDN业务
- CDN上传文件有没有大小限制?
- CDN是否支持频次控制?
- CDN支持实时监控功能吗?
- CDN是否支持绑定HOST等固定IP访问的方式来提供服务?
-
使用咨询
- 如何通过项目来管控分配CDN的使用权限?
- 如何对IAM子账号开放CDN部分权限?
- CDN域名服务范围对源站服务器位置、备案是否有要求?
- CDN服务范围仅选择中国大陆或中国大陆境外,未加速区域的用户访问时会怎样?
- CDN是否支持部分地区加速,部分地区不加速?
- CDN流量和带宽的进制换算规则是什么?
- CDN是对网站所在的服务器加速,还是对域名加速?
- CDN支持添加泛域名作为加速域名吗?
- 中国大陆、中国大陆境外、全球服务范围的CDN加速之间有什么区别?
- 国外IP地址访问加速域名时,会通过哪个节点加速?
- 服务器在中国大陆境外,网站访问人群在中国大陆,该如何选择服务范围?
- 业务集中在一个城市,是否有必要使用CDN?
- 华为云CDN如何判断用户所属地区?
- 从其它服务商迁移CDN到华为云要怎么做?CDN如何切流?
- 同一个加速域名是否可以加速多个源站域名?
- 配置CDN后能否加速文件上传速度?
- 能否实现国内用户直接访问源站服务器,而国外用户接入CDN加速?
- 源站端口使用的自定义端口而非80端口,能否使用CDN?
- 源站在国内或者国外,可以直接使用全球加速吗?
- 源站为其他云服务厂商(非华为云)的对象存储桶,如何在CDN接入源站?
- 加速域名是否支持对指定线路的访问用户进行CDN加速?
- 加速域名备案过期了有什么影响?
- 加速域名和源站域名有什么区别?
- 接入CDN的加速域名和源站域名需要备案吗?
- 同一个加速域名下面有不同类型的内容(网站、视频点播、文件下载),能使用CDN进行加速吗?
- 开通了“企业项目”后,子账号调用接口时报错“无法获取domain id”
- CDN可以和直播加速共用域名吗?
-
购买计费
- CDN在哪些环节收费,如何收费?
- CDN受到恶意攻击会计费吗?
- CDN流量包相关问题汇总
- CDN是否可以看到单个加速域名的计费情况?
- CDN是否会对HTTP/HTTPS请求数计费?
- CDN从OBS拉取的流量是什么流量?
- 如何设置流量包剩余使用量预警?
- 如何设置余额预警阈值?
- 如何核对每月的CDN月结95带宽峰值计费情况?
- 为什么流量包中的流量使用量与统计分析中的流量显示存在差别?
- 为什么购买了流量包,还会扣除余额?
- 点播加速和文件下载加速收费一样吗?
- 什么是保留期?
- 配置全球加速后中国大陆和中国大陆境外所消耗的流量、带宽是否分开计费?
- 因欠费导致CDN服务不可用的情况排查
- 使用OBS桶作为源站且已购买OBS回源流量包,但CDN产生的回源流量未从OBS回源流量包中扣除
-
域名配置
- CDN是否支持配置带端口的加速域名?
- CDN加速域名可以用子域名吗?
- CDN加速域名的CNAME是否可以直接访问?
- CDN添加安全证书后,源站还需要配置证书吗?
- 审核未通过的域名还可以再修改吗?
- 多个加速域名是否可以使用同一源站IP地址?
- 使用OBS桶作为源站接入CDN加速,OBS域名能否作为加速域名?
- 网站服务在国内如何设置加速网站域名?
- 接入CDN的域名能否根据QPS(每秒请求数)进行限流?
- 华为云CDN是否支持加速经过VPN跳转的资源?
- 使用华为云CDN加速,域名解析是否必须在华为云?
- 同一个CDN加速域名能否同时支持国内和海外?
- 已经停用域名,更换域名解析,为什么访问加速域名还是会到CDN节点?
- 如果加速域名是泛域名,如何配置证书?
- HTTPS证书配置提交时提示“证书链不齐全”,如何进行证书链补齐?
- HTTPS证书配置提交时提示“证书格式不对”,如何进行PEM证书格式转换?
- HTTPS配置是否支持添加自签名证书?
- 开启HTTPS强制跳转后,为什么在浏览器内访问正常,但是通过api请求HTTP会导致post请求丢失参数?
- 配置HTTPS后还可以使用HTTP访问吗?
- 已接入CDN的加速域名备案过期怎么办?
-
缓存配置
- CDN节点的缓存多久会更新,会自动更新吗?
- CDN是否支持正则表达式设置缓存策略?
- CDN是否支持批量配置加速域名的缓存策略?
- CDN会缓存 404、403状态码吗?
- CDN有哪些默认的缓存配置?是否有效?
- 为什么全站加速域名的缓存命中率大于0?
- CDN缓存配置下目录路径指浏览器地址中的路径,还是服务器中文件的路径?
- 为什么CDN的缓存命中率较低?
- 为什么OBS桶删除了文件之后,用户还能通过CDN地址访问下载该文件?
- 如何设置缓存首页(根目录)?
- 如何判断CDN是否缓存命中?
- 在CDN控制台资源缓存过期时间设置为0,为何访问到的仍然不是最新内容?
- 华为云CDN是否支持octet-stream流文件的缓存?
- 缓存配置中配置缓存过期时间为365天,未过期,为什么有些文件能下载有些不能?
- 网站资源不需要缓存,需要直接从源站获取,该如何设置?
- 缓存可以指定目录,以及指定文件后缀吗?
- 域名被盗链,更换域名会影响之前的缓存吗?
- 资源全部预热,缓存过期时间为1年,为什么最近统计到回源流量?
- 如何保证CDN的内容和源站同步?
- 缓存配置为什么没有生效?
-
故障相关
- 域名未在华为云上接入过CDN,系统提示该域名已添加
- 配置HTTPS安全加速后,为什么访问加速域名不成功?
- 从CDN获取到的数据是旧的,没有更新缓存
- 访问CDN加速后的资源,返回状态码304
- 使用OBS私有桶做源站,创建授权委托失败
- 修改源站IP地址后,访问网页无法正常显示
- 访问失败,报Access-Control-Allow-Origin错误
- 添加CDN加速后,百度蜘蛛为什么抓取失败?
- 为什么OBS桶接入CDN后,访问域名会列出所有文件列表?
- 为什么CDN配置好以后,视频播放卡顿?
- 为什么CDN被禁用了?
- 为什么域名配置HTTPS后页面一直提示301?
- 为什么配置CDN加速后,ping加速域名出现超时?
- 配置CDN加速后,回源获取的资源不正确
- 配置CDN后,为什么首次访问很慢?
- 配置了CDN加速,为什么中国大陆境外无法访问?
- 使用CDN加速OBS桶文件后访问变成强制下载
- 域名添加失败怎么办?
- 刷新预热
- 安全相关
- 统计日志
- 回源相关
- 配额相关
-
功能咨询
- 故障排除
- WSA用户指南
- 视频帮助
- 文档下载
- 通用参考
更新时间:2023-12-13 GMT+08:00
链接复制成功!
如何提高缓存命中率
背景信息
CDN缓存命中率低,会导致源站压力大,静态资源访问效率低。您可以针对导致CDN缓存命中率低的具体原因,选择对应的优化策略,来提高CDN的缓存命中率。CDN缓存命中率包括流量命中率和请求命中率。
- 流量命中率 = 命中缓存产生的流量 / 请求总流量
- 请求命中率 = 命中缓存的请求数 / 请求总数
流量命中率越低,回源流量越大,源站的流出流量越大,源站带宽资源占用越大,其代表了源站服务器收到的负载压力,请重点关注流量命中率。
查看缓存命中率
您可以登录CDN控制台查看流量命中率和请求命中率。
- 登录华为云控制台,在控制台首页中选择“CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
- 在左侧菜单栏中,选择“统计分析”。
- 分别选择“使用量统计”和“访问情况统计”查看“流量命中率”和“请求命中率”。
图1 流量命中率图2 请求命中率
优化缓存命中率
- 合理设置缓存过期时间
CDN加速的本质是缓存加速,把源站资源缓存在遍布全球的节点上,用户可以就近从边缘节点获取资源,从而达到加速的效果。您可以通过CDN控制台合理设置缓存过期时间来提高缓存命中率,建议如下:
- 对于不经常更新的静态文件(如图片类型、应用下载类型等),建议您将缓存时间设置为1个月以上。
- 对于频繁更新的静态文件(如JS、CSS等),您可以根据实际业务情况设置。
- 对于动态文件(如PHP、JSP、ASP等),建议您将缓存时间设置为0,即不缓存。
详细的设置步骤和注意事项请见如何设置缓存过期时间。
- 如果源站设置了s-maxage=0、max-age=0、no-cache、no-store、private,CDN侧同时开启了“缓存遵循源站”功能(此功能默认关闭),CDN节点将无法缓存源站资源,导致频繁回源。
- 如果您的源站有多个主机,某个相同的资源在多个主机中的Last-modified、Etag、Content-Length不一致,CDN节点将无法缓存该资源,导致重复回源。
- 如果源站资源更新,请刷新资源对应的URL,以保证用户可以获得最新的资源。
- 如果您修改了缓存规则:
- 新的规则仅对后面缓存的资源生效,已经缓存的资源需要等缓存过期后,再次缓存才会遵循新的缓存规则。
- 如果您想要立即生效,请在修改缓存规则后执行缓存刷新操作。
- 配置URL参数
目前大多数的网页请求都携带URL参数信息,参数以“?”开始,如果参数没有包含重要信息(如版本信息等),是否携带该参数访问不会影响用户获得正确的资源,可以选择将“URL参数”功能配置为“忽略参数”或“忽略指定参数”,提高缓存命中率,提升分发效率,详见URL参数。
典型应用:
- 终端用户首次访问URL“http://www.example.com/1.txt?test1”时,CDN无缓存,回源请求资源;第二次访问“http://www.example.com/1.txt?test2”时,由于配置了“URL参数”的“忽略参数”功能,所以“?”之后的参数不匹配,直接命中缓存“http://www.example.com/1.txt”。
- 终端用户首次访问URL“http://www.example.com/1.txt?test1”时,CDN无缓存,回源请求资源;第二次访问“http://www.example.com/1.txt?test2”时,由于“URL参数”功能配置为“不忽略参数”,所以“?”之后的参数也需要匹配,要重新回源请求“http://www.example.com/1.txt?test2”。
- 预热URL
CDN可以通过缓存预热将源站资源主动缓存到CDN节点,用户访问时就能直接从CDN节点获取到最新的资源,详见缓存预热。
当您的域名初次接入CDN加速、活动发布时您可以将源站资源预热到CDN节点,用户访问资源时直接从CDN节点获取,从而提升CDN的缓存命中率。
典型场景:
- 初次接入CDN:域名初次接入CDN时,节点暂未缓存源站资源,此时,您可以将源站资源预热至CDN节点。后续用户访问资源将直接从就近的CDN节点获取资源,提升访问速度。
- 安装包发布:新版本安装包或是升级包发布前,提前将资源预热至CDN节点。正式上线后,海量用户的下载请求将直接由全球加速节点响应,提升下载速度的同时,大幅度降低源站压力。
- 运营活动:运营活动发布前,提前将活动页涉及到的静态资源预热至CDN节点。活动开始后,用户访问中所有静态资源均由加速节点响应,海量带宽储备保障用户服务可用性,提升用户体验。
- 开启Range回源
Range回源是指源站在收到CDN节点回源请求时,根据HTTP请求头中的Range信息返回指定范围的数据给CDN节点。Range回源能有效缩短大文件的分发时间,提升回源效率,提高缓存命中率,详见Range回源。
典型场景:
- 未开通Range时,用户想观看指定片段的视频,而CDN回源时需要获取整个视频,所以回源流量大于响应给用户的流量,从而造成缓存命中率降低。开启Range回源后,CDN将分片回源获取资源返回给用户,从而提升缓存命中率。
- 其它
判断URL是否命中缓存
- 在浏览器Chrome上,按F12。
- 选择“Network”。
- 查看指定URL的响应头,查看头部信息,进行如下判断:
- 如果有“x-hcs-proxy-type”头部,值为“1”即命中缓存,值为“0”即未命中缓存,不再查看其它头部;
- 如果无“x-hcs-proxy-type”头部,而有“X-Cache-Lookup”头部,值为“Hit From MemCache”、“Hit From Disktank”或“Hit From Upstream”即为命中缓存,其它值表示未命中缓存,不再查看其它头部;
- 如果同时无“x-hcs-proxy-type”、“X-Cache-Lookup”头部,有“age”头部,则值大于“0”即命中缓存,值为“0”即未命中缓存。