惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
Arctic Wolf
博客园 - 聂微东
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
小众软件
小众软件
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
L
LangChain Blog
A
About on SuperTechFans
阮一峰的网络日志
阮一峰的网络日志
I
Intezer
T
The Blog of Author Tim Ferriss
Security Latest
Security Latest
C
CXSECURITY Database RSS Feed - CXSecurity.com
Know Your Adversary
Know Your Adversary
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Palo Alto Networks Blog
Scott Helme
Scott Helme
S
Secure Thoughts
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
P
Privacy & Cybersecurity Law Blog
O
OpenAI News
H
Heimdal Security Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Help Net Security
Help Net Security
C
Cyber Attacks, Cyber Crime and Cyber Security
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
G
Google Developers Blog
博客园 - Franky
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
Kaspersky official blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Tor Project blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tenable Blog
Google Online Security Blog
Google Online Security Blog
PCI Perspectives
PCI Perspectives

吴润写字的地方

从零构建 A 股 ETF 动量轮动系统:一个量化新手的完整指南 2025 年 8 月 Digest 2025 年 7 月 Digest 2025 年 6 月 Digest 2025 年 5 月 Digest 2025 年 4 月 Digest 清明桐庐行 2025 年 3 月 Digest 2024 年终总结 换车 崇明岛一日游 夜游徐汇滨江绿地 2023 年终总结 踏春之浦康休闲公园 香港澳门行 读「投资第一课」有感 皮皮玩球 Chrome 插件推荐 Go 并发之道:并发介绍 The Night Agent 我是如何使用 ChatGPT 的 2022 年终总结 在 Ubuntu 上搭建 MinIO 2021 年终总结 Golang 不可寻址的理解 Golang 的 defer 关键字使用注意事项 恭王府 强制删除 k8s terminating 状态命名空间 PromQL 计算 CPU 使用率 PromQL 如何计算变化(率) Trickster 使用 奥森的向日葵 Go Modules - checksum mismatch 错误解决 k8s 介绍 再探 798 解决 gin 路由冲突问题 wu.run 域名正式使用 GoLand 使用指南 macOS 软件推荐 2020 这一年 Python 循环列表删除元素的注意事项 Mac 下的定时任务工具:Launchctl Linux 服务器搭建 VNC 可视化桌面 Jenkins 个别 job 页面打开超时的解决方法 遇见 Aamir Khan Hexo 从 GitHub 到阿里云 『从未说出口的秘密』词云分析 768 的秋天 北戴河 Outing 飞盘记 三里屯夜景 爬虫图解:轮子哥关注了哪些人 2017-06-30 GitHub+Hexo 搭建个人网站详细教程 特朗普税改 如果有一天,苹果和微信只能选一个,你会选哪一个? About | 吴润写字的地方 Links | 吴润写字的地方 Memos | 吴润写字的地方
CDN 使用初探
2021-05-09 · via 吴润写字的地方

CDN(Content Delivery Network),即内容分发网络,是指一组在地理上分散的服务器,它们协同工作以提供互联网内容的快速交付。

CDN 可以快速加载互联网内容,包括 HTML 页面、javascript 文件、CSS 文件、图像和视频等。

使用 CDN 的原因

  • 缩短网站加载时间 - 通过使用附近的 CDN 服务器,将内容分发到网站访问者附近,访问者将能体验到更快的页面加载时间。由于访问者更倾向于离开加载缓慢的网站,CDN 可以降低跳出率并增加访问者在该网站上停留的时间。换句话说,网站速度越快,意味着更强的用户粘性。

  • 减少带宽成本 - 网站托管的带宽成本是网站的主要费用。通过缓存和其他优化,CDN 能够减少源站必须提供的数据量,从而降低网站所有者的托管成本。

  • 增加内容可用性和冗余 - 大流量或硬件故障可能会扰乱正常的网站功能。由于 CDN 具有分布式特性,因此与许多源站相比,CDN 可以更好地处理更多流量并对硬件故障容灾。

  • 改善网站安全性 - CDN 可以通过提供 DDoS 防护、安全证书的改进以及其他优化措施来提高网站的安全性。

具体使用

wu.run 是静态网站,一开始是托管在 GitHub 上,网站里的图片是放在免费的图床上。但是免费的图床不稳定,很容易就不能访问。后来,网站托管在阿里云轻量服务器上,网站的图片也是放在上面,但是服务器的带宽有限,图片较大时,访问体验较差。所以就想使用 CDN 加速图片访问速度。

云服务厂商基本都支持 CDN 服务,这里我选择了七牛云,因为七牛云提供每月 10G 免费流量。使用国内 CDN 服务的前提条件是需要有一个已备案的域名。不同云服务厂商 CDN 服务配置流程基本相同。

添加 CDN 域名

如七牛云添加 CDN 域名,包含三部分:域名配置、源站配置、缓存配置。

域名配置,填写需要加速的域名,这里我是使用二级域名:cdn.wu.run 作为 CDN 加速域名。你也可以使用类似 static.example.com 域名,这样的域名一看就知道大概率是 CDN 域名。

源站配置,所谓的源站,就是 CDN 缓存不存在或者 CDN 缓存失效时,从哪个地方拉取这些文件。这里我使用的七牛云的对象存储作为源站,即图片都存储在对象存储中,CDN 缓存不存在或者 CDN 缓存失效时,从这个对象存储中拉取。当然,源站可以不仅是七牛云对象存储,还可以是源站域名、IP 地址,以及高级设置中设置主备路线。

缓存配置,用于设置缓存时间,即 CDN 缓存文件的过期时间,我这里是使用推荐配置。

添加 CDN 域名解析

CDN 域名创建后,会提示添加 CDN 域名解析。添加 CDN 域名解析的作用就是让 CDN 域名解析到云厂商的服务器,从云厂商的服务器上拿到需要的文件(如图片资源)。如 wu.run 域名是阿里云上购买的,需要到阿里云上添加该域名一条新解析,一般是一条 CNAME 记录。

解析添加成功后,我们探测下 cdn.wu.run 这个域名。

 ~  dig cdn.wu.run

; <<>> DiG 9.10.6 <<>> cdn.wu.run
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42478
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;cdn.wu.run.			IN	A

;; ANSWER SECTION:
cdn.wu.run.		311	IN	CNAME	cdn-wu-run-idvfzm3.qiniudns.com.
cdn-wu-run-idvfzm3.qiniudns.com. 11 IN	CNAME	dt003.china.line.qiniudns.com.
dt003.china.line.qiniudns.com. 11 IN	CNAME	tinychinacdnweb.qiniu.com.w.kunlunno.com.
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.232
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.238
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.233
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.236
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.239
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.235
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.234
tinychinacdnweb.qiniu.com.w.kunlunno.com. 60 IN	A 111.19.241.237

;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue May 09 22:37:24 CST 2021
;; MSG SIZE  rcvd: 283

可以看到,cdn.wu.run 域名 已 CNAME 到 cdn-wu-run-idvfzm3.qiniudns.com。并经过多次 CNAME,直到转发到真正的 CDN 服务器上。

上传文件

因为这里我是用了七牛云对象存储作为源站,所以需要将图片上传到 CDN 域名绑定的七牛云对象存储中,且在七牛云上设置上传文件存储类型为标准存储。设置不同的源站,操作是不一样的。注意,如果对象存储的文件需要被外部访问,即作为 CDN 源站场景下,需要将对象存储的访问控制设置为公开空间。

上传成功后,就可以拿到文件的外链地址,这个地址就可以用于网站上。如 wu.run 网站上大部分图片地址是以 cdn.wu.run 开头的 CDN 域名。

访问控制

网站是公开访问的,其他人可以拿到网站上文件的链接,盗用这些链接用于其他地方,会造成我们 CDN 费用大涨(所以说免费的图床真的是用爱发电)。所以需要设置 CDN 域名访问控制。如七牛云会提供一些访问控制的选项,防止其他人盗链。

比如我这里开启了「Referer 防盗链」,设置了 Referer 白名单,并且 Referer 不能为空,否则只是拿到图片的 CDN 链接直接访问,将会返回 403 错误。

总结

以上是简单了解 CDN,并简单使用云厂商 CDN 服务的例子,更多的使用方法参考各家云厂商官方文档,这里就不再赘述了。