无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻 > 产业新闻 >

构建自身的CDN会有哪些快乐合好处?

时间:2021-01-19 23:05来源:郑州网站建设价格 作者:jianzhan 点击:
如你所见, 我也喜爱网页页面能迅速载入, 越快越好. 但在大家刚开始探讨以前, 先要有1个清晰的认知能力: CDN 其实不是全能的. 假如由于不尽人意的前端开发工作中致使你的网站变慢,

如你所见, 我也喜爱网页页面能迅速载入, 越快越好. 但在大家刚开始探讨以前, 先要有1个清晰的认知能力: CDN 其实不是全能的. 假如由于不尽人意的前端开发工作中致使你的网站变慢, CDN 其实不能帮到你太多, 你必须先做好前端开发工作中. 但1旦你早已做好了全部的提升, 就必须来科学研究1下內容传送这块了.

我碰到的关键难题是即便能根据1次 HTTP 恳求来进行原始网站的载入, 但由于我的服务器代管在法兰克福, 在加拿大的人仍必须等候 2⑶ 秒后才可以浏览到它. 超出 300ms 的来回延时和正中间很多的服务出示商使得网页页面载入就跟 WordPress 网站1样慢.

那怎样处理这个难题呢? 1种处理计划方案是应用传统式的 CDN. 但是大多数数商业服务 CDN 在从服务器恳求到数据信息以后, 都会缓存文件1段時间.

因为 CDN 的存在, 在內容获得上略微绕行了1下, 致使在应用传统式 CDN 以后, 原始网页页面的载入反而变慢了. 假如你的网站总流量高, 內容1直缓存文件着, 这没甚么大难题. 但反过来讲, 假如和我1样仅仅是运作1个小blog, 內容其实不会常驻缓存文件,传统式的 pull-CDN 反而会让网站变得更慢. 自然, 我还可以根据 push-CDN 立即提交內容, 但跟我要构建的 CDN 相比, 这类成本费要价格昂贵很多.

CDN 是怎样工作中的?

大家的计划方案很确立: 以便扩张全球危害力, 大家应当确保內容在任何部位都能被迅速浏览. 这代表着內容所属部位应当尽可能挨近浏览者. 便捷的是, 许多云服务商在好几个地域都出示了便宜的虚似服务器. 大家是不是仅必须把內容放到例如 6 台服务器上, 就万事如意了呢?

好吧, 没那末快. 那怎样把客户路由器到正确的服务器上呢? 大家看1下具体浏览网站的全过程. 最先, 访问器根据 DNS 查寻网站的 IP 详细地址, 获得到 IP 以后, 便可以联接网站并免费下载恳求的网页页面.

顶层的处理计划方案实际上很简易: 必须1台智能化 DNS 服务器, 对恳求的 IP 做 GeoIP 查寻并回到离它近期的 IP 详细地址. 客观事实上, 基本上全部的商业服务 CDN 全是这么做的. 尽管还牵扯到很多工程项目学行业的內容, 例如延迟时间精确测量等, 但基础基本原理還是这个.

让 DNS 服务器快起来

接下来新的难题出現了: 怎样让 DNS 服务器快起来? 从近期连接点上浏览网站仅仅处理了1半难题, 假如 DNS 搜索迫不得已绕行地球1周, 還是会有巨大的延迟时间.

客观事实证实, 支撑点互联网技术的基本设备十分合适处理这个难题. 互联网出示商应用界限网关协议书来互相告之可联接的互联网和跃点的是多少. 大部分状况下, 最后互联网技术出示商会选用最短路故障线来抵达总体目标详细地址.

假如在好几个部位应用1个 IP 详细地址, DNS 一直会路由器到近期的连接点, 这便是 BGP Anycast.

为什么网站免费下载不应用 BGP Anycast?

假如能保证, 大家为什么不简易应用 BGP 来路由器互联网总流量呢? 关键有3个缘故.

最先, 应用 BGP Anycast 必须在互联网硬件配置上做操纵, 而且必须1个最少包括 256 个 IP 详细地址的池子, 这超过了大家的费用预算.

其次, BGP 路由器其实不那末平稳. 不一样于 DNS 恳求仅仅只必须向两个方位推送单独数据信息包, HTTP web 恳求必须建立1个联接来免费下载內容. 期内假如路由器更改或联接不平稳, HTTP 联接就会断掉. 对这类经营规模的工程项目来讲反而提升了许多繁杂性.

最终, 跃点做为 BGP 路由器测算基本, 它数目地减小其实不能确保来回延迟时间的减小. 1个跨大洋的跃点将会仅仅是1个跃点, 但确是時间最长的1个.

建立 DNS

既然早已确定不可以运作大家自身的 BGP Anycast, 也代表着一样不可以运作大家自身的 DNS 服务器. 让大家去找找收费的!… 客观事实证实, 另外出示 BGP Anycast 和延迟时间路由器的 DNS 出示商很难寻找. 我只检索到了 2 个: 非常价格昂贵的 Dyn 和十分划算的 Amazon Route53.(升级: 后来发现, DNS Made Easy 也能完成延迟时间路由器) 既然想合算, 就选 Route53 了. 加上网站域名以后刚开始为设备设定 IP. 大家必须设定跟大家遍及全球全国各地的 (边沿连接点) 服务器一样多的 DNS 纪录, 每条纪录设定以下:

提醒: 最好是对每一个边沿连接点都建立1个身心健康查验便于在她们无效落后行移除.

派发內容

大家必须处理的下1个难题是派发內容. 每一个边沿连接点都必须有同样的內容. 假如你应用的是 Jekyll 这样的静态数据网站转化成器, 工作中很简易: 只必须将转化成的 HTML 文档拷贝到全部的服务器上便可. 1个简易的 rsync 就可以搞定.

假如想应用 WordPress 这样的內容编写系统软件, 工作中会艰难的多, 由于它其实不能在 CDN 上运作. 自然还可以做, 但在所难免有缺点, 静态数据內容的派发依然是1个难题. 你将会务必要建立1个遍布式储存才可以一切正常工作中.

应用 SSL/TLS 资格证书

下1个痛点是应用 SSL/TLS 资格证书. 具体上, 能够统称她们为: x509 资格证书. 每一个边沿连接点都必须为网站域名设定合理的资格证书. 自然, 最简易的处理计划方案是应用 LetsEncrypt 来转化成不一样的资格证书. 但要留意, 我在这其中1个边沿连接点上碰到了 LE 合理期的难题, 致使在每周限额期满以前我迫不得已临时把伦敦连接点下掉.

我应用 Traefik 做为我的挑选代理商, 它适用遍布式键值储存, 乃至适用 Apache Zookeeper 后端开发同歩. 尽管这必须1些程序流程设计方案, 可从长久看来会更平稳1些.

結果

是情况下检测1下結果了, 我的 CDN 主要表现怎样呢? 应用这个专用工具, 看1下整体数据信息:

如你所见, 非常非常好的結果. 我将会还必须在亚洲地区和南美加两个连接点来提升载入時间.

升级: 在把它递交到 Hacker News 主页以后, 我可使用 Google Analytics 来搜集1些具体应用数据信息:

结果: 我的确必须1个新加坡连接点. 在印度的载入時间超出了预期的 1 秒.

普遍难题

我在做这项工作中的情况下, 人们常常问我:” 你为何要做这个呢? 你这是自寻苦恼啊 “. 的确, 在某种水平上, 我喜爱做不一样的事儿来探寻新方位和新技术应用, 创建自身的 CDN 将会具备很大的实际意义. 让大家来谈谈有关设定的1些难题.

最先声明: 假如商业服务出示商能推出价钱有效的 push CDN, 让我能解决 nice URLs, SSL 和自定头信息内容, 我肯定乐意掏钱处理难题并停掉我自身的基本设备. 构建它很趣味, 但我也有许多服务器沒有运作它.

为什么无需 CloudFlare?

对许多人来讲 CloudFlare 是1个很棒的专用工具, 但如上所述, CDN 会从缓存文件中移除未应用的內容. 我管理方法的别的网站, 在正确配备的状况下缓存文件命里率大约能做到 75%. 有着自身的 CDN 则代表着內容会常驻缓存文件, 不容易有浏览远程控制服务器而致使的来回延时.

为什么无需 S3 或 CloudFront?

Amazon S3 有代管静态数据网站的选项, 而且能够与 CloudFront 融合着应用. 但是, 它不容许你自定缓存文件头信息内容, 设定 nice URLs 等. 为此, 你必须应用 Lambda@Edge, 这是1个可让你在 CloudFront 边沿连接点上运作编码的专用工具. 但 Lambda@Edge 跟 CDN 有一样的难题: 假如它在1段時间内沒有接受到恳求, 运作它的器皿就会关掉, 再度重新启动则必须1秒钟的時间.

为什么无需 Google AMP?

Google AMP 只会在客户根据 Google 检索模块浏览你的网站时才会带来实际效果. 而我的绝大多数总流量并不是来自 Google, 因此它其实不能处理难题. 它仅仅对 Google 合理果, 无论别的. 并且我彻底有工作能力在不应用她们出示的简化 HTML 的状况下构建1个迅速网站.

谁在乎? 3 秒的载入時间早已很棒了!

我是1个善于內容传送的 DevOps 工程项目师. 无论别的人怎样, 我都应当有1个全世界都能迅速浏览的网站, 并不是吗? 我1般都会将 Google AMP 关掉, 由于跟她们所期待的不一样, 这是1项不尽人意的技术性.

构建

如今看你的了: 是不是要构建你自身的 CDN? 源码在 GitHub 上, 拿去吧!

英文原文 | https://pasztor.at/blog/building-your-own-cdn

原文 | http://codebay.cn/post/7936.html

译者:郭明

福音:天地数据信息个人订制全世界CDN https://www.idcbest.com/2017/Txsjcdn.asp

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信

在线咨询
联系电话

400-888-8866