VuePress 站点
首页
数学
计算机基础
Java后端
AI大模型
UI设计
首页
数学
计算机基础
Java后端
AI大模型
UI设计
  • 计算机基础
  • 计算机网络应用

    • 课程笔记:TCP三次握手建立连接
    • 课程笔记:TCP三次握手的必要性
    • 课程笔记:TCP协议缺陷与SYN Flood攻击
    • 课程笔记:TCP四次挥手释放连接
    • 课程笔记:TCP四次挥手释放连接的必要性
    • 课程笔记:TCP 报文段格式与 IP 分组
    • 课程笔记:HTTP/2 新特性——二进制分帧
    • 课程笔记:HTTP/2 新特性——多路复用
    • 课程笔记:HTTP/2 新特性——服务器推送(Server Push)
    • 课程笔记:HTTPS 简介与架构图
    • 课程笔记:HTTPS原理与传输层安全协议(TLS)
    • 课程笔记:HTTPS原理——对称加密算法
    • 课程笔记:HTTPS原理——非对称加密算法
    • 课程笔记:HTTPS 原理 —— 数字签名
    • 课程笔记:HTTPS 原理——证书与 CA
    • 课程笔记:完整的HTTPS协议通信流程
    • 课程笔记:HTTPS 协议的性能损耗
    • 课程笔记:TLS False Start 加速 HTTPS
    • 课程笔记:升级 HTTP 协议到 HTTP/2
    • 课程笔记:通过会话恢复加速 HTTPS
    • 课程笔记:OWASP 组织与十大 Web 安全漏洞
    • 课程笔记:XSS 跨站脚本攻击
    • 课程笔记:存储型XSS跨站脚本攻击
    • 课程笔记:XSS攻击窃取Cookie
    • 课程笔记:反射型XSS跨站脚本攻击
    • 课程笔记:DOM型XSS跨站脚本攻击
    • 课程笔记:植入 JS、HTML 代码攻击
    • 课程笔记:XSS攻击的防护策略
    • 课程笔记:XSS攻击的输入环节防护
    • 课程笔记:XSS 劫持 Cookie 的防护策略
    • 课程笔记:XSS 内容输出防护方案
    • 课程笔记:CSP 内容安全策略
    • 课程笔记:CSP 内容安全策略的应用方式
    • 课程笔记:CSRF 跨站请求伪造攻击原理
    • 课程笔记:CSRF 跨站点请求伪造攻击案例
    • 课程笔记:CSRF 跨站请求伪造防护方案
    • 课程笔记:OWASP CSRFTester 工具的原理与使用
    • 课程笔记:点击劫持攻击原理
    • 课程笔记:点击劫持防护方案
    • 课程笔记:URL 跳转漏洞原理与防护
    • 课程笔记:Session 认证与会话劫持
    • 课程笔记:Session固定与Session保持攻击
    • 课程笔记:注入攻击与 OWASP 靶机平台
    • 课程笔记:SQL盲注与ORM注入攻击及防护
    • 课程笔记:XML注入、代码注入、OS命令注入攻击
    • 课程笔记:文件上传漏洞与文件下载/目录浏览漏洞
    • 课程笔记:访问控制与权限访问漏洞
    • 课程笔记:DDoS 分布式拒绝服务攻击原理与防护
    • 课程笔记:CC(Challenge Collapsar)攻击与防护
    • 课程笔记:CDN 的工作原理
    • 课程笔记:CDN的网络架构和术语说明
    • 课程笔记:CDN应用场景与阿里云CDN
    • 课程笔记:如何使用阿里云CDN服务
    • 课程笔记:CDN 刷新与预热
    • 课程笔记:阿里云 CDN 回源配置
    • 课程笔记:CDN 缓存配置
    • 课程笔记:CDN 访问控制与性能优化
  • 计算机网网络

    • 📖 教材介绍与课程导言
    • 📖 1.1 信息时代的计算机网络
    • 📖 1.2 因特网概述
    • 📖 1.3 电路交换、分组交换和报文交换
    • 📖 1.4 计算机网络的定义和分类
    • 📖 1.5 计算机网络的性能指标(1)
    • 📖 1.5 计算机网络的性能指标(2)
    • 📖 1.6.1 常见的三种计算机网络体系结构
    • 📖 1.6.2 计算机网络体系结构分层的必要性
    • 📖 1.6.3 计算机网络体系结构分层思想举例
    • 📖 计算机网络体系结构中的专用术语
    • 📖 物理层概述
    • 📖 物理层下面的传输媒体
    • 📖 传输方式
    • 📖 编码与调制
    • 📖 2.5 信道的极限容量
    • 📖 2.6 信道复用技术
    • 📖 3.1 数据链路层概述
    • 📖 3.2 数据链路层的三个重要问题
    • 📖 3.2.1 封装成帧和透明传输
    • 📖 3.2.2 差错检测
    • 📖 3.2.3 (1) 可靠传输的相关基本概念
    • 📖 3.2.3 (2) 可靠传输的实现机制 - 停止-等待协议(SW)
    • 📖 3.2.3 (3) 可靠传输的实现机制 - 回退N帧协议(GBN)
    • 📖 3.2.3 (4) 可靠传输的实现机制 - 选择重传协议(SR)
    • 📖 3.3 点对点协议 PPP
    • 📖 3.4 共享式以太网
    • 📖 3.4.1 网络适配器和 MAC 地址
    • 📖 3.4.2 (1) CSMA/CD 协议的基本原理
    • 📖 3.4.2 (2) 共享式以太网的争用期、最小帧长和最大帧长
    • 📖 3.4.2 (3) 共享式以太网的退避算法和信道利用率
    • 📖 3.4.3 使用集线器的共享式以太网
    • 📖 3.4.4 在物理层扩展以太网
    • 📖 3.4.5 (1) 网桥的主要结构和基本工作原理
    • 📖 3.4.5 (2) 透明网桥的自学习和转发帧的过程以及生成树协议STP
    • 📖 3.5 交换式以太网
    • 📖 3.5.1 以太网交换机
    • 📖 3.5.2 共享式以太网和交换式以太网的对比
    • 📖 3.6 以太网的MAC帧格式
    • 📖 3.7.1 虚拟局域网 VLAN 概述
    • 📖 3.7.2 虚拟局域网 VLAN 的实现机制
    • 📖 3.8 以太网的发展
    • 📖 3.9.1 802.11 无线局域网的组成
    • 📖 3.9.2 802.11 无线局域网的物理层
    • 📖 3.9.3 (1) 802.11 无线局域网的数据链路层 —— 使用 CSMA/CA 协议(而不使用 CSMA/CD 协议)
    • 📖 CSMA/CA(载波监听多址接入/碰撞避免)协议的基本工作原理
    • 📖 802.11 无线局域网的 MAC 帧格式
    • 📖 网络层概述
    • 📖 网际协议 IP(网际协议)与异构网络互连
    • 📖 IPv4 地址及其编址方法——概述
    • 📖 IPv4 地址的分类编址方法
    • 📖 IPv4 地址的划分子网编址方法
    • 📖 IPv4 地址的无分类编址方法(CIDR)
    • 📖 IPv4 地址的应用规划
    • 📖 IPv4 地址与 MAC 地址
    • 📖 地址解析协议 ARP
    • 📖 IP 数据报的发送和转发流程
    • 📖 IPv4 数据报的首部格式
    • 📖 静态路由配置
    • 📖 因特网的路由选择协议概述
    • 📖 路由信息协议 RIP(路由信息协议)
    • 📖 开放最短路径优先 OSPF(开放最短路径优先)
    • 📖 边界网关协议 BGP(边界网关协议)
    • 📖 路由器的基本工作原理
    • 📖 网际控制报文协议 ICMP(网际控制报文协议)
    • 📖 虚拟专用网 VPN 和网络地址转换 NAT
    • 📖 IP 多播技术的相关基本概念
    • 📖 在局域网上进行硬件多播
    • 📖 在因特网上进行 IP 多播需要的两种协议
    • 📖 网际组管理协议 IGMP
    • 📖 多播路由选择协议
    • 📖 移动 IP 技术概述
    • 📖 IPv6 引进的主要变化
    • 📖 IPv6 数据报的基本首部和扩展首部
    • 📖 IPv6 地址
    • 📖 从 IPv4 向 IPv6 过渡
    • 📖 网际控制报文协议 ICMPv6
    • 📖 软件定义网络 SDN
    • 📖 运输层概述 — 进程间基于网络的通信
    • 📖 TCP/IP 体系结构运输层中的两个重要协议
    • 📖 运输层端口号、复用与分用的概念
    • 📖 UDP 和 TCP 的对比
    • 📖 TCP 报文段的首部格式
    • 📖 "三报文握手"建立 TCP 连接
    • 📖 "四报文挥手"释放 TCP 连接
    • 📖 TCP 的流量控制 (Flow Control)
    • 📖 TCP 的拥塞控制 (Congestion Control) 及与网际层拥塞控制的关系
    • 📖 TCP 可靠传输的实现
    • 📖 TCP 超时重传时间 (RTO) 的选择
    • 📖 TCP 的选择确认 (SACK)
    • 📖 6.1 应用层概述
    • 📖 6.2 客户—服务器方式和对等方式
    • 📖 6.3 动态主机配置协议 DHCP
    • 📖 6.4 域名系统 DNS
    • 📖 6.5 文件传送协议 FTP
    • 📖 电子邮件
    • 📖 万维网 WWW
    • 📖 网络安全概述
    • 📖 密码学相关基本概念
    • 📖 对称密钥密码体制
    • 📖 公钥密码体制
    • 📖 报文摘要和报文鉴别码
    • 📖 数字签名(digital signature)
    • 📖 实体鉴别
    • 📖 密钥分发
    • 📖 访问控制
    • 📖 网络体系结构各层采取的安全措施—物理层和数据链路层
    • 📖 网络体系结构各层采取的安全措施—网络层
    • 📖 网络体系结构各层采取的安全措施—运输层
    • 📖 网络体系结构各层采取的安全措施—应用层
    • 📖 防火墙访问控制与入侵检测系统
    • 📖 常见的网络攻击及其防范
    • 📖 定长子网划分和变长子网划分的二叉树解法

课程笔记:CDN 缓存配置

课程名称:计算机网络应用 核心摘要:本讲围绕阿里云 CDN 域名管理下的边缘节点缓存配置展开,讲解如何通过设置缓存过期时间、状态码缓存、自定义响应头、自定义错误页面及 URI 重写等策略,将源站静态资源缓存至离用户最近的 CDN 节点,从而减少回源链路、提升访问效率。

一、 核心概念与原理

  • CDN 加速原理:当对静态资源进行 CDN 加速时,可将源站上的资源缓存到距离用户最近的 CDN 边缘节点上;用户访问时直接从节点缓存读取,避免较长的回源链路,提升访问效率。
  • 缓存配置的本质:针对缓存策略做配置,而非缓存内容本身。通过策略控制"哪些资源缓存多久、哪些不缓存、命中失败如何响应"。
  • 配置入口:阿里云 CDN 控制台 → 域名管理 → 缓存配置(各 Tab 页均提供"如何进行设置"的引导提示,文档较为完善)。

二、 技术细节与协议分析

2.1 缓存过期时间配置

可按以下维度定制缓存有效期,且支持多条规则叠加:

配置维度适用对象示例推荐时长
按目录该目录下所有静态资源文件/images/视资源更新频率而定
按文件后缀指定后缀类型的文件jpg、js、css图片建议以月为单位;JS/CSS 等变更频繁的可设较短周期
多规则组合同时添加目录与后缀规则目录 + 多个后缀通过权重区分生效优先级
  • 权重机制:当目录规则与后缀规则对同一文件同时生效时,权重大者优先。
  • 时间单位:支持以秒、天、月为单位设置。

2.2 状态码缓存配置

针对静态资源、指定目录或文件后缀,按HTTP 状态码设置缓存过期时间,过期后自动删除缓存。

状态码类别代表状态码缓存行为
不缓存303、304、401、407 等此类响应不再进行缓存
可缓存204、305、400 等此类响应进行缓存

生效优先级规则:

  1. 若源站响应中携带 Cache-Control 缓存头,则遵循源站的缓存策略。
  2. 若未设置状态码、也未设置过期时间,则默认缓存 1 秒。
  3. 若针对特定状态码(如 301)既配置了状态码规则又设置了过期时间(如 1000 秒),则按配置的时间生效。
  4. 若同时配置了目录与文件后缀两种过期规则,由于该处不提供优先级设置,先配置的规则优先级更高、先生效。

2.3 自定义 HTTP 响应头

  • 可对边缘节点返回的响应头进行自定义新增、修改、删除。
  • 配置方式与缓存过期规则类似,按需添加指定 Header 即可。

2.4 自定义错误页面

当源站返回特定错误状态码时,CDN 可重定向到预先定义好的错误页面:

状态码含义处理方式
404服务器上不存在该网页跳转到自定义 404.html
400请求有误(Bad Request)跳转到对应错误页
405禁用请求中指定的方法(Method Not Allowed)跳转到对应错误页
500服务器遇到错误(Internal Server Error)跳转到对应错误页
503 / 504服务不可用 / 网关超时跳转到对应错误页
  • 错误页面(如 404.html)需在源站服务端(如 Nginx)预先定义并部署。

2.5 URI 重写

当用户请求的 URI 与源站实际路径不匹配时,通过重写机制进行改写或跳转。

典型场景:用户仍使用旧协议/旧路径访问(如 http://example.com/hello),但服务端路径已变更,需将其重定向到新地址。

执行规则选项:

选项说明
执行 302 跳转匹配规则后以 302 状态码重定向到目标 URI
匹配后不再继续若请求 URI 匹配当前规则,执行完本规则后不再匹配剩余规则(即到此终止)

三、 实践应用与配置命令

3.1 缓存过期时间配置示例(控制台操作)

# 按文件后缀配置(控制台添加规则)
规则类型:文件后缀
后缀:    jpg
过期时间:1 月
权重:    50

规则类型:文件后缀
后缀:    js
过期时间:6 月      # JS 变更相对频繁,按需缩短
权重:    50

# 多规则冲突时:权重大者生效;可同时叠加目录规则

3.2 状态码缓存配置示例

# 对指定后缀设置状态码缓存
规则类型:文件后缀
后缀:    css
状态码:  301
过期时间:1000 秒     # 既设状态码又设时间,按该时间缓存

# 不缓存的状态码(如 303/304/401/407)会自动跳过缓存
# 源站返回 Cache-Control 时,遵循源站策略

3.3 源站错误页面定义(Nginx 示例)

server {
    error_page 404 /404.html;
    location = /404.html {
        root /usr/share/nginx/html;
        internal;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
        internal;
    }
}

四、 重点与难点提示

  • 缓存策略 ≠ 缓存内容:CDN 缓存配置的核心是策略(有效期、状态码、权重),而非具体缓存数据。
  • 权重与顺序两套优先级:缓存过期时间用权重区分;状态码缓存中目录与后缀冲突时用配置先后顺序区分,二者机制不同,切勿混淆。
  • 遵循源站原则:源站响应 Cache-Control 头时,CDN 默认遵循源站策略,控制台配置仅在源站未指定时生效。
  • 默认缓存 1 秒:未设置状态码且未设置时间时,默认仅缓存 1 秒,是常见踩坑点。
  • 不缓存状态码集:303、304、401、407 等表示不缓存;304 本身是"协商缓存"响应,CDN 不会缓存该响应体。
  • URI 重写的终止性:勾选"匹配后不再继续"会终止后续规则匹配,规则编排顺序很关键。
  • 面试高频点:CDN 回源链路、Cache-Control 与 CDN 缓存的协同、状态码缓存策略、302 重写跳转。

五、 课后疑问/遗留问题

  • 当多级 CDN 节点(L1/L2)层级缓存时,过期时间与权重策略在各层级是否一致生效?
  • Cache-Control: no-cache 与 no-store 在 CDN 边缘节点的具体行为差异是什么?
  • URI 重写规则中正则匹配的性能开销与规则数量上限如何评估?
  • 自定义响应头与源站返回头同名时,是覆盖还是追加?后续课程待补充。
最近更新: 2026/6/23 17:18
Contributors: yangwenguang
Prev
课程笔记:阿里云 CDN 回源配置
Next
课程笔记:CDN 访问控制与性能优化