It's dangerous to go alone! Take this.
内容分发网络 (Content Delivery Network, CDN) 是用于将网页的静态资源缓存并进行就近分发的网络。它通常用于优化网站加载速度。当然,CDN 也可以用于隐藏主机的真实地址。当对地址进行解析时,总是命中 CDN 节点,而非主机本身。利用这个特性,我们可以各种搞事。
Cloudflare
Cloudflare 本身就提供了 CDN 能力。当然,我们作为白嫖党就没法做到针对国内访问的优化,打开 CDN 就是云减速。不过,对于海外的服务器,还是非常值得开启的。
如果你选择使用 Cloudflare 解析域名的话,打开 Cloudflare CDN 的方法很简单:把域名记录旁边的云点亮就可以了。
腾讯云 CDN
国内机器针对国内的访问的优化,自然是通过国内的供应商。腾讯云开局赠送 6 个月的 20Gi CDN 流量包,白嫖是够用的。之前这个域名已经备案,所以不需要再捯饬奇怪的内容。
需要注意:就算是国外服务器,如果要用腾讯云做国内加速访问,也是需要备案的。
配置腾讯云 CDN 就要复杂一些。但是主要的麻烦点还是处理证书。添加一个域名只需要两个操作:把自己需要加速的域名和对应的 IP 添加到控制面板;再把该域名的记录改成对应的 CNAME 解析到腾讯云给定的 CDN 域名就可以了。
但由于我从一开始就启用了 HSTS, 这时候由于 CDN 默认的安全证书不正确,所以连接会被直接关闭。这时候需要再单独为对应的 CDN 条目添加证书。你仍然可以直接在腾讯云的平台上申请免费证书并添加,所以不需要再把 Let's Encrypt 的证书捯饬出来导入腾讯云。但这也同时意味着你有前后两份证书需要操心续期。I guess it's a small price to pay when you use things for free.
CNAME 拉平
Cloudflare 会自动把 @
上的 CNAME 记录拉平。所谓记录拉平就是将 CNAME 的解析结果直接作为 A/AAAA 记录返回。这会影响 @
上的 CDN 解析。
解决方案有两个:换一个不搞 CNAME 拉平的 DNS, 或者不在根记录上使用 CDN. 但我又不是很想换 DNS, 毕竟有其他服务器是跟着 Cloudflare 走的。
所以,我就把博客这个主要流量点迁移到了 https://blag.dsstudio.tech. 其实当初我也一直想这么做,但是由于懒所以一直拖着到现在。至于为什么叫 blag
而不是 blog
, 是因为 xkcd 真的很好看。当然,为了保持之前的引用能正常运行,我也配置了原域名的 301 跳转。
隐藏真实地址的必要性
利用 CDN 网络隐藏真实地址的目的主要是抗攻击。当你的网站不幸被攻击的时候,你可以借助 CDN 网络本身做流量清洗。Cloudflare 的能力自然无需多提,腾讯云下也可以做访问频率限制等等内容,避免恶意流量直接打到 1M 小水管里。
当然,隐藏真实地址还可以一定程度上帮你隐藏身份。反正嘛,总是有人手头上有足够的时间、足够的技术和不够的 san 值来整活的,要这么容易就出事未免也太成问题了。
Your comments will be submitted to a human moderator and will only be shown publicly after approval. The moderator reserves the full right to not approve any comment without reason. Please be civil.