云服务器内容精选

  • 背景信息 视频拖拽多应用于 视频点播 场景,当您观看视频需要随意拖拽播放进度且不影响观看效果时,您可以配置视频拖拽功能。 如果您配置了视频拖拽,在观看视频时拖拽播放进度时,客户端会向服务器发起类似如下请求: http://www.example.com/test.flv?start=50 此时将返回从第50字节开始的数据。如果CDN节点已缓存本视频,则节点直接将该视频返回给用户。 开启视频拖拽需同步开启忽略参数配置,即配置节点缓存规则中mp4、flv的文件配置需为“忽略参数”。 开启视频拖拽需要源站支持Range请求。 支持的文件格式为:mp4、flv。 表1 文件格式 文件格式 Meta信息 start参数说明 示例 MP4 源站视频的meta信息必须在文件头部,不支持meta信息在尾部的视频。 start参数表示时间,CDN会自动定位到start参数所表示时间的前一个关键帧(如果当前start不是关键帧)。start参数的单位是秒,支持以小数表示,例如start=1.01,表示开始时间是1.01秒。 http://www.example.com/test.mp4?start=50 表示从第50秒开始播放。 FLV 源站视频必须带有meta信息。 start参数表示字节,CDN会自动定位到start参数所表示字节的前一个关键帧(如果当前start不是关键帧所在位置)。 http://www.example.com/test.flv?start=500 表示从第500字节开始播放。
  • 配置示例 域名 www.example.com开启回源跟随,配置如下: 用户请求www.example.com/cdn.jpg文件,未命中缓存,节点回源请求资源。如果源站返回HTTP Response状态码301/302,重定向跳转地址为www.example.com/test/cdn.jpg。 节点收到301/302状态码后,直接向需要跳转的地址发起请求。 节点获取到资源后,返回给用户,并缓存到节点。 如果用户B再请求www.example.com/cdn.jpg文件,直接命中缓存,节点将资源返回给用户。 域名www.example.com未开启回源跟随,配置如下: 用户请求www.example.com/cdn.jpg文件,未命中缓存,节点回源请求资源。如果源站返回HTTP Response状态码301/302,重定向跳转地址为www.example.com/test/cdn.jpg。 节点直接将HTTP Response状态码301/302返回给用户,由客户端向重定向跳转地址发起请求。 如果重定向跳转地址的域名未接入CDN,则节点不能缓存该资源,不会有加速效果。 如果用户B请求www.example.com/cdn.jpg文件,重复以上流程。
  • 背景信息 如果您的源站地址因业务需求做了301/302 重定向,CDN的回源请求会返回301/302状态码,当您开启回源跟随后,CDN节点会先跳转到301/302对应地址获取资源,缓存后再返回给用户。开启或未开启回源跟随CDN的处理如下: 未开启:CDN会将301/302对应跳转地址直接返回给用户,让用户自己去请求跳转地址的资源。如果该跳转地址域名未加入CDN,则该请求过程不会有加速效果。 已开启:CDN会先跳转到301/302对应地址获取用户所需资源后缓存至节点并返回给用户,当其他用户再次请求同样资源时会直接命中节点缓存。
  • 配置示例 示例1:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/a.txt 改写后的回源请求:https://www.example.com/test/b.txt 示例2:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/aaa/bbb.mp4 改写后的回源请求:https://www.example.com/newtest/aaa/bbb.mp4 示例3:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/aaa/bbb.txt 改写后的回源请求:https://www.example.com/new.jpg 示例4:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/123.html?id=3 改写后的回源请求:https://www.example.com/thread0/123.html?id=3
  • 配置示例 配置场景1:某客户的域名“www.example.com”配置了 CDN加速 ,缓存规则配置见下图。 配置结果:网站首页不缓存,所有页面均不会忽略URL参数。 配置场景2:设置某个类型的文件不缓存 某客户的域名“www.example.com”配置了CDN加速,由于业务需求,需要对“.do”格式的文件不缓存,同时所有文件都忽略URL参数。 需要在CDN控制台增加一条文件名后缀为“.do”的缓存规则,缓存过期时间设置为“0”。 新规则仅对后续资源缓存生效,新规则配置完成后,建议您刷新“.do”文件所在的URL或者目录,新规则才可以对所有“.do”文件生效。 某客户配置了CDN加速,发现登录界面无限循环,无法登录,停用CDN加速后,可以正常登录。 这是因为CDN节点缓存了登录界面导致的,需要在控制台增加一条针对登录界面的缓存规则,缓存过期时间设置为“0”。以华为云控制台登录界面为例,华为云控制台的登录页面为“https://auth.huaweicloud.com/authui/login.html#/login”,在控制台增加一条全路径:/authui/login.html#/login,缓存过期时间为“0”的缓存规则。 配置场景3:某客户加速域名www.example.com设置了如下图的缓存规则,不知道哪一个规则生效。 用户访问www.example.com/test/cdn.jpg,虽然所有文件、文件名后缀、全路径三条规则都匹配到了,但是由于全路径的优先级为8,在三条规则里优先级最高,所以系统最终匹配全路径/test/*.jpg这条规则。
  • 注意事项 每个域名最多可添加60条缓存规则。 CDN缓存过期时间会对“回源率”产生直接的影响。如果CDN缓存过期时间过短,CDN节点上的数据会经常失效,导致频繁回源,增加了源站的负载,同时也增大了访问延时;如果CDN缓存过期时间过长,会带来数据更新时间慢的问题。 缓存过期时间设置为0时,该文件的所有请求都将回源,可能存在加速业务中断的风险。 节点缓存的资源,可能会由于热度较低而被提前从CDN节点删除。 如果您修改了缓存规则,请注意: 新的规则仅对后面缓存的资源生效,已经缓存的资源需要等缓存过期后,再次缓存才会遵循新的缓存规则。 如果您想要新的规则对所有资源(包括节点已缓存资源)立即生效,请在修改缓存规则后执行缓存刷新操作。
  • 背景信息 CDN节点的缓存策略遵循HTTP标准协议,通过HTTP响应头中的Cache-control: max-age的字段来设置CDN节点上数据的缓存时间。添加缓存规则让CDN用户可以对指定的业务做定制化的数据缓存时间管理。合理的配置缓存时间,能够有效的提升命中率,降低回源率,节省用户的带宽。 当用户向CDN节点请求数据时,CDN节点会判断缓存数据是否过期。如果缓存数据未过期,则直接将缓存数据返回给用户,提升获取速度;否则,CDN节点就会向源站发出回源请求,从源站请求最新数据,更新本地缓存,并将最新数据返回给用户。
  • 注意事项 如果加速域名的资源在CDN节点不缓存,即使设置了状态码缓存时间,也无法缓存客户端请求该资源时产生的状态码。 后台有特殊配置的域名暂不支持配置状态码缓存时间。 业务类型为全站加速的域名不支持配置状态码缓存时间。 CDN默认缓存404、500、502、504状态码3s,其他状态码默认不缓存。 是否默认缓存404状态码依赖头域设置,如果带有X-HTTP-Method-Override、X-HTTP-Method、X-Method-Override头域,默认不缓存,反之则缓存3s。 如果域名的某个资源URL参数设置为“忽略参数”,当客户端请求返回的状态码(例如400)被缓存时,在缓存时间内所有该资源的请求均返回该状态码(400),请根据业务情况合理设置状态码缓存时间。 当前支持修改以下状态码的缓存时间: 4XX:400、401、403、404、405、407、414、416、451。 5XX:500、501、502、503、504、509、514。 3XX:301、302。
  • 适用场景 状态码缓存时间功能主要适用于源站响应异常状态码的场景。当源站运行正常时,CDN回源请求资源后将按照设置的缓存规则将资源缓存到节点,再次访问相同资源时不会触发回源。当源站响应异常,且不希望所有请求都由源站响应,可以设置状态码缓存时间,减轻源站压力。 典型应用:图片abc.jpg已从源站删除,CDN节点无缓存,且持续有用户在访问该资源,那么所有访问都将会回源,由源站响应4xx状态码,增加源站压力。此时如果在CDN配置4xx状态码缓存时间,用户再次请求资源将直接由CDN节点响应4xx状态码,无需回源。
  • 背景介绍 Etag是URL的Entity Tag,用于标示URL对象是否改变。 域名接入CDN加速后,客户端首次访问时CDN节点会回源请求数据返回给用户,同时将资源缓存到CDN节点。在设置的缓存过期时间内,当用户再次请求资源时,CDN会将节点缓存的资源返回给客户端,不需要回源。当CDN节点缓存的资源过期后: 开启“回源是否校验ETag”:客户端再次请求该资源时,CDN会校验ETag值。如果ETag、Last-Modified和Content-Length值都没有变化,CDN将继续返回给用户节点缓存的资源,无需回源,降低回源率,减轻源站压力;如果ETag、Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。 未开启“回源是否校验ETag”:客户端再次请求该资源时,CDN不会校验ETag值。如果Last-Modified和Content-Length的值都没有变化,CDN将继续返回给用户节点缓存的资源;如果Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。
  • 注意事项 CDN默认开启“回源是否校验ETag”。 业务类型为全站加速的域名不支持配置回源是否校验ETag。 如果加速域名开启了Range回源,CDN节点回源时获取到资源不同分片的Last-Modified值不一致,CDN将会判定资源发生变化 ,为避免将错误的资源返回给客户端 ,CDN会中断连接 ,客户端访问也将中断。如果遇到类似问题,请根据业务情况选择以下措施规避: 关闭Range回源。 如果资源存放在不同的源站,请将资源迁移到同一个源站。 回源时不校验Last-Modified的值,如需关闭校验,请提交工单申请。
  • 背景信息 Range信息的作用是在HTTP请求头中指定返回数据的范围,即第一个字节的位置和最后一个字节的位置。如:Range: bytes=0-100就是请求该文件的前101个字节的数据内容。 开启Range回源后,当客户端请求某资源,如果CDN节点上未缓存该资源或资源已过期,节点回源时会采用Range请求,从源站分段获取用户需要的部分资源并缓存到CDN节点上。 Range回源能有效缩短大文件的分发时间,提升回源效率,减少回源消耗。
  • 为什么要看实时日志 实时日志可以帮助您分析加速域名遇到的异常问题,也可以帮助您了解用户的访问情况。实时日志的优势如下: 当前CDN控制台可为用户展示的离线日志是延时了6个小时的日志,而实时日志延时较小,可以帮助您更快速对终端用户访问日志进行分析。 传统离线日志需要您先将离线日志包下载、解压再对日志进行分析处理,过程比较繁琐。华为云已打通与 云日志 服务间的通信链路,采用流式传输,免去了传统日志繁琐的下载分析流程。 云日志服务已部署CDN专属的可视化仪表盘,您可以一键开启,将CDN原始日志可视化呈现。 离线日志目前默认提供访问时间、状态码等14个字段,实时日志默认提供 日志分析 常用的25个字段,详见实时日志字段。
  • 注意事项 CDN目前仅支持推送中国大陆节点(域名服务范围为中国大陆或全球)的日志到云日志服务的华北-北京四region。CDN其余地区节点的日志推送功能正在规划,请关注产品动态。 CDN节点实时日志推送暂不收费(后续是否会收费请关注产品动态),基础存储与分析相关费用由云日志服务(LTS)收取。 受网络、节点物理硬件等的影响,引起的部分日志有延迟属于正常波动,实时日志也会存在小概率的延迟。 实时日志不可用于计费、对账等场景。 对接LTS后,如果您的域名上量超过20%,请提前5天提交工单请运维人员介入,以免影响正常使用。 如果您将某域名迁移到了当前子账号没有查询权限的企业项目中,在该子账号下修改日志推送规则时将会下发失败。 示例:子账号A拥有企业项目test的查询权限,域名example.com的企业项目归属也是test。子账号A创建了一条域名example.com的日志推送,后续因业务需要将域名example.com迁移到了企业项目test1中,此时用户登录账号A修改域名example.com的日志推送时将报错无权限。 解决方案:登录主域名或者其他有企业项目test1查询权限的子账号修改。
  • 实时日志字段 表2 实时日志字段说明 字段 字段含义 是否一定有值 缺省值 request_time 请求时间戳,单位:毫秒 是 无 domain 请求的域名 是 无 method 请求方法 是 无 scheme 请求协议 是 无 uri 请求资源 是 无 uri_param 请求参数 否 "-" client_ip 用户真实IP 是 无 client_port 和CDN节点建连客户端端口 是 无 refer_protocol HTTP refer中的协议 否 "-" refer_domain HTTP refer中domain信息 否 "-" refer_uri HTTP refer中uri信息 否 "-" refer_param HTTP refer中的参数信息 否 "-" request_size 请求大小 是 无 response_time 请求响应时长,单位:毫秒 是 无 response_size 请求返回大小,单位:字节 是 无 http_code 请求响应码 是 无 response_range 应答头里表示的range信息(由源站创建),如bytes:0~99/200 是 无 request_range 用户请求中Header头中range字段取值,如bytes:0~100 是 无 request_body_bytes 实际发送body大小,单位:字节 是 无 content_type 请求的资源类型 是 无 hit_info 命中信息,取值为HIT(命中)、MISS(未命中) 是 无 user_agent UA 否 "-" uuid 请求唯一标识(全网唯一请求ID,即traceid) 是 无 via_info via头信息 否 "-" X-Forwarded-For 请求头中X-Forwarded-For字段 否 "-" server_ip 服务端IP:CDN服务端响应IP 是 无