云服务器内容精选

  • 注意事项 每个域名最多可添加60条缓存规则。 CDN缓存过期时间会对“回源率”产生直接的影响。如果CDN缓存过期时间过短,CDN节点上的数据会经常失效,导致频繁回源,增加了源站的负载,同时也增大了访问延时;如果CDN缓存过期时间过长,会带来数据更新时间慢的问题。 缓存过期时间设置为0时,该文件的所有请求都将回源,可能存在加速业务中断的风险。 节点缓存的资源,可能会由于热度较低而被提前从CDN节点删除。 如果您修改了缓存规则,请注意: 新的规则仅对后面缓存的资源生效,已经缓存的资源需要等缓存过期后,再次缓存才会遵循新的缓存规则。 如果您想要新的规则对所有资源(包括节点已缓存资源)立即生效,请在修改缓存规则后执行缓存刷新操作。
  • 配置示例 配置场景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这条规则。
  • 背景信息 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、403、404、405、414。 5XX:500、501、502、503、504。 3XX:301、302。
  • 适用场景 状态码缓存时间功能主要适用于源站响应异常状态码的场景。当源站运行正常时,CDN回源请求资源后将按照设置的缓存规则将资源缓存到节点,再次访问相同资源时不会触发回源。当源站响应异常,且不希望所有请求都由源站响应,可以设置状态码缓存时间,减轻源站压力。 典型应用:图片abc.jpg已从源站删除,CDN节点无缓存,且持续有用户在访问该资源,那么所有访问都将会回源,由源站响应4xx状态码,增加源站压力。此时如果在CDN配置4xx状态码缓存时间,用户再次请求资源将直接由CDN节点响应4xx状态码,无需回源。
  • 如何保证CDN的内容和源站同步? 设置缓存规则,针对不同的内容设置不同的缓存刷新规则,对更新频繁的内容,可以设置较短的缓存时间; 对于不经常更新的内容,可以设置较长的缓存时间,从而减小源站压力。 如果设置的缓存刷新周期未到,但是有新内容发布或者删除部分内容,可以通过以下方式进行手动刷新。 登录华为云控制台,在服务列表中选择“CDN”,左侧菜单栏选择“预热刷新”,在缓存刷新页签完成刷新操作。 通过CDN服务提供的缓存刷新、缓存预热API接口,主动调用CDN API接口来更新CDN缓存,详见API参考。 如果只更新某个文件,建议使用URL刷新对更新的文件进行刷新。目录刷新会针对目录下所有文件进行刷新,生效时间比较慢。 父主题: 缓存配置
  • 概述 CDN加速的原理就是将源站资源缓存到遍布全球的各个边缘节点,终端用户就近获取资源,从而达到加速效果。如果您想修改资源在CDN节点的缓存情况,可以通过修改缓存配置来实现。 缓存相关配置如下表: 功能 说明 缓存规则 如果您想合理的配置不同资源的缓存过期时间和优先级,有效的提升缓存命中率,降低回源率,您需要设置缓存规则。 如果您需要CDN节点在缓存资源时忽略“?”之后参数,提高缓存命中率,提升分发效率,您需要开启URL参数。 如果您的源站配置了缓存过期时间,同时想要CDN侧的缓存过期时间跟源站一致,您需要开启缓存遵循源站。 浏览器缓存过期时间 您可以配置浏览器缓存过期时间,当终端用户请求资源时,如果浏览器有缓存,直接返回给用户,降低回源率。 状态码缓存时间 如果您需要将源站返回的错误状态码缓存到CDN节点,用户再次请求时由CDN直接响应给用户错误码,您可以配置状态码缓存时间,减少回源概率,减轻源站压力。 访问URL重写 当用户请求URL与CDN节点缓存资源的URL不一致时,可以通过访问URL重写功能重定向到目标URL。 如果您修改了缓存规则、缓存遵循源站设置,请注意: 新的规则仅对后面缓存的资源生效,已经缓存的资源需要等缓存过期后,再次缓存才会遵循新的规则。 如果您想要立即生效,请在修改规则后执行缓存刷新操作。 父主题: 缓存配置
  • 适用场景 如果服务器资源的存放路径变化,CDN节点存放资源的路径也会随之变化。用户请求的URL路径如果没有变化,就需要CDN节点来改写用户请求的URL。例如用户请求的图片“a”的路径为“/test”,服务器中图片“a”的存放路径已改为“/testnew”。 CDN通过重定向的方式来完成URL的匹配,HTTP 302状态码(即302 Found),可表示资源被临时改变了位置。配置访问URL改写后,CDN节点会在给客户端发送的302状态码响应信息的HTTP Location头部中放置新的URL地址信息,客户端收到302状态码响应之后,将会向新的URL地址发起请求。重定向的状态码及其含义详见表表1。 表1 重定向方式 编码 含义 处理方法 典型应用场景 301 Moved Permanently GET方法不会发生变更,其他方法有可能会变更为GET方法。 资源被永久转移。 302 Found GET方法不会发生变更,其他方法有可能会变更为GET方法。 由于不可预见的原因该页面暂不可用。 303 See Other GET方法不会发生变更,其他方法会变更为GET方法(消息主体会丢失)。 用于PUT或POST请求完成之后进行页面跳转,防止由于页面刷新导致的操作的重复触发。 307 Temporary Redirect 方法和消息主体都不发生变化。 由于不可预见的原因该页面暂不可用。当站点支持非GET方法的链接或操作的时候,该状态码优于302状态码。
  • 缓存配置为什么没有生效? 如果您配置了缓存规则,在使用过程中发现此缓存规则未生效,可能是以下原因: 缓存规则配置生效大约需要5分钟时间,请您在规则生效后再验证。 您修改了缓存规则: 新的规则仅对后面缓存的资源生效,已经缓存的资源需要等缓存过期后,再次缓存才会遵循新的缓存规则。 如果您想要立即生效,请在修改缓存规则后执行缓存刷新操作。 缓存规则有优先级(数值越大优先级越高),优先级较高的会优先匹配,请检查您的缓存规则优先级。 配置示例:某客户为域名www.example.com配置了文件名后缀为.jpg的规则,希望缓存过期时间为1天,优先级为2。 配置结果:当用户访问www.example.com/test/cdn.jpg文件时,有两条规则包含了此文件:文件名后缀、全路径,但是由于全路径的优先级为8,优先级较高,所以系统最终匹配全路径/test/*.jpg这条规则,缓存时间为3天。 调整方法:如果想要.jpg这条文件名后缀的规则优先生效,需要将优先级调整为大于8的数值。 父主题: 缓存配置