文档中心 CDN Pro 简单缓存

简单缓存

更新时间:2023-06-28 17:20:28

简单缓存

在实际生产环境中,您对 CDN Pro 的需求绝不会仅仅是生成一个固定字符串返回给客户端而已。一个典型的 CDN 需求通常需要 CDN Pro 作为区域代理服务器从源站获取一些文件并缓存一段时间,以供终端客户前来请求和检索该文件,以此降低源站的负载并实现请求就近获取的加速分发效果。

假设您需要加速的域名是 “faster.wangsu.com”,源站服务器的主机名是 “www.wangsu.com” 。 默认情况下,您希望 CDN Pro 作为代理服务器根据源站响应头中的 cache-control expires 来缓存对应的文件。如果源没有指定该文件的缓存时间,则缓存 10 分钟。 同时,由于您已经提前预知了 HTML、CSS、PNG、JS 和 JPEG 文件不会经常更新,因此您希望此类文件至少能够缓存1天(即便源站给的缓存规则小于1天)。

为了实现以上需求,CDN Pro 的边缘逻辑配置如下:

location / { # 默认 / 目录配置
  proxy_cache_valid 10m; # 如果源没有给缓存指示(通常是Cache-Control或者Expire头部中),则缓存10分钟
  origin_pass www_origin; # 从www_origin这个源站获取文件
}
location ~ /.*\.(html?|css|png|js|jpeg) { # 静态文件
  proxy_cache_valid 1d; # 如果源没有给缓存指示(通常是Cache-Control或者Expire头部中),则缓存1天
  proxy_cache_min_age 1d; # 至少能够缓存1天(即便源给的缓存规则小于1天)
  origin_pass www_origin; # 从www_origin这个源站获取文件
}

上述示例中有2个 location 指令:

  • 第一个是前缀匹配模式
  • 第二个是正则匹配模式

根据 NGINX 官方文档 中对 location 指令的描述,相比前缀匹配模式,正则模式有更高的优先级。因此,所有匹配到第二个location中的静态文件都将按照第二个 location 块中的逻辑来处理,而其他文件类型则由第一个 location 块处理。

  • proxy_cache_valid:该指令用于在源站没有给缓存指示时,指定 CDN Pro 的缓存时间。默认情况下,只对 200/301/302 状态码的响应生效(在本例中静态文件缓存1天,其余文件缓存10分钟)。同时,您也可以按照 NGINX 官方文档 中的描述设置其他状态码的缓存时间。
  • proxy_cache_min_age:这是一个需要携带一个参数的 CDN Pro 全新特有指令。如果来自源站的 “max-age” 值小于指定值,则确保 CDN Pro 按照该指令的参数值对内容进行缓存。
  • origin_pass:这是指定源站的专有指令。该指令封装自 NGINX 的 proxy_passproxy_set_header , proxy_ssl_name 以及一些其他代理缓存指令。
  • www_origin:这是您分配给源站的名称,该名称需要事先在加速项目中进行源站配置
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!