10 - 什么是 OSS 和 CDN,为什么要配合用
上一章我们知道,前端部署就是把静态文件放到”货架”上。这个货架由两位主角组成:OSS(存)+ CDN(快速分发)。这一章把它俩讲清楚,以及为什么要配合用。
OSS:对象存储,负责”存”
OSS(Object Storage Service,对象存储):一个专门用来存文件的云服务。你把文件传上去,它帮你可靠地存着,并且可以配置成”允许别人通过网址访问下载”。
- 阿里云叫 OSS
- 腾讯云叫 COS
- (名字不同,本质一样)
它的特点:
- 便宜:按实际存储量和下载流量付费,存一个前端项目一个月几毛钱
- 可靠:云厂商帮你多副本存储,不怕丢
- 免运维:不用管服务器、不用管磁盘
你把前端 dist/ 里的文件传进 OSS 的一个”桶(Bucket)“里,每个文件就有了一个访问网址。理论上,用户已经能通过这个网址访问你的网站了。
那为什么还需要 CDN?
问题:只有 OSS,远处的人访问会慢
你的 OSS 桶开在某个地域(比如杭州)。那么:
- 杭州附近的用户访问 → 快
- 新疆、广东、甚至国外的用户访问 → 每次都要大老远跑到杭州去取文件 → 慢
而且所有人都挤到杭州这一个点,访问量一大就容易卡。
CDN:内容分发网络,负责”快”
CDN(Content Delivery Network,内容分发网络):在全国各地(乃至全球)都布有节点(叫”边缘节点”)。它把你 OSS 里的文件缓存一份到各个节点,用户访问时,就近从离他最近的节点拿文件。
- 新疆用户 → 从新疆附近的节点拿 → 快
- 广东用户 → 从广东附近的节点拿 → 快
类比:OSS 是总仓库(东西都存这),CDN 是遍布全国的便利店(就近取货)。你不用每次都跑去总仓库,家门口便利店就有。
CDN 的两个核心动作
- 缓存命中:用户要的文件,最近的节点上已经有 → 直接给,最快
- 回源:节点上没有(或过期了)→ 节点先去**总仓库(OSS)**取一份、缓存下来,再给用户。下一个人来就直接命中了
[配图:中间一个 OSS 总仓库,向全国各地的 CDN 边缘节点分发文件;不同地区的用户各自就近连到最近的节点]
为什么 OSS + CDN 要配合用
| OSS 单干 | CDN 单干 | OSS + CDN | |
|---|---|---|---|
| 存文件 | ✅ | ❌(它只是缓存,不长期存) | ✅ OSS 存 |
| 全国访问快 | ❌ 远处慢 | ✅ | ✅ CDN 就近 |
| 扛高并发 | 一般 | ✅ 节点分摊 | ✅ |
结论:OSS 负责”可靠地存原件”,CDN 负责”就近快速分发”,两者配合才是前端部署的黄金搭档。CDN 里没有的、或过期的内容,都会回源到 OSS 去取。
顺带一提:CDN 不只给前端用
图片、视频、下载包等静态资源都可以走 CDN 加速。但对我们来说,最典型的用途就是加速前端静态站点。
小结
- OSS(对象存储):专门存文件的云服务,便宜、可靠、免运维;阿里云叫 OSS,腾讯云叫 COS。
- 只有 OSS 的问题:远处用户访问慢、高并发易卡。
- CDN(内容分发网络):全国布节点,把文件缓存到各地,用户就近访问,快。
- 配合方式:OSS 存原件(源站),CDN 缓存分发;命中就直接给,没有就回源到 OSS。
概念都清楚了,下一章我们动手实战:把一个前端项目真正部署到 OSS + CDN 上,并接上 CI/CD 自动化。
下一章 → 11 - 实战:把前端部署到 OSS + CDN