说到 CDN ,核心无非就是“缓存”和“加速”两个功能。主流的大规模 CDN 大多基于 Apache Trafffic Server ,属于是博主高攀不起的知识盲区。在个人能够配置的小规模 CDN 场景中,cdnfly 和 goedge 是大家比较喜欢的。但是这些工具在更低的需求面前,最致命的缺点就是不够轻量,在单节点使用中(亦或直接称之为反向代理)宛如用高射炮打蚊子一般。
NGINX 除了作为最常用的 Web Server ,也是一个高性能的反向代理工具。事实上,早年的 CloudFlare 和当下的 GCORE 都是基于 NGINX 开发的 CDN 系统,只是在一键脚本盛行的今天很少有人再去关注它与实现这些 CDN 功能的联系。上一篇文章提到糖哥送了博主一台 5M 带宽的腾讯云无忧轻量,正好借此机会对博主的 Gravatar 、JSdelivr 等资源使用的集中反代 api.lty.fun 进行一次彻底的改造,顺便也聊聊 NGINX 反向代理中的一些小技巧。
在缓存全局的配置中有 inactive 参数控制不活跃的缓存过期时间,边缘节点上的该参数是很多小型站点缓存命中率难以提高的重要原因。大规模的 CDN (比如腾讯云、阿里云等)边缘节点众多,小体量的博客很难一直维持边缘节点上的有效缓存。也有一个误区是“套上 CDN 一定就快”,其实不然。以国内腾讯云的北上广 BGP 为例,在不触及带宽上限的情况下其全国访问性能是明显好于托管在二三线城市的 CDN 运营商节点的。这也方面也非常清晰地体现在成本上,北上广的 BGP 带宽均价在 100/M 以上,是边缘节点带宽价格的 20 倍。腾讯轻量提供了一个较为廉价的机会让我们接触这样的网络,也为各种需求配备了充裕的流量包。合理利用 3-5M 带宽能做的事还是很多的,我的博客日 PV 在 400 左右、CDN 流量约 1G ,报表回馈的实际峰值带宽都很少超过 2Mbps 。
具体的细节就不在 V2 敲一遍了,欢迎到我的博客来阅读指导~
1
ugvfpdcuwfnh 2023-05-01 13:14:53 +08:00
nginx proxy manager 可以可视化的配置 nginx ,很好用!
|
2
LuminousKK OP @ugvfpdcuwfnh 是的!如果习惯使用 docker 配置环境的话很方便
|
3
Yanel 2023-05-01 22:37:08 +08:00 via iPhone
感谢,很实用
|
4
RangerWolf 2023-05-01 22:58:10 +08:00
很赞!
|
5
FGRPM432 2023-05-08 10:47:42 +08:00
@ugvfpdcuwfnh NGINX web ui 也挺不错的
|