一、概述1.1的含义
CDN的全称是内容传递网。CDN是建立在网络上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,用户可以就近获取所需内容,减少网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要包括内容存储和分发技术。——摘自百度百科
名词解释:
Origin Server:源站,源服务器 User:访问者 Edge Server:CDN 的服务器1.2 核心技术点 内容存储技术内容分发技术负载均衡技术1.3 CDN 优势 加速:基于 CDN 各节点,就近获取内容降低负载:基于 CDN 缓存,减少源站的访问成本低:费用成本、部署成本可扩展性强:基于边缘计算二、原理 2.1 流程图简化流程图
图像源AWS
相对于“完整版本”流程图
图片来源阿里巴巴云
2.2 缓存原理请看一个PHP缓存的例子:
& lt?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
$ result = Cache::memory(' URL ',100,function () {
返回'你好世界' ...;
});
大部分缓存的原理都是像上面这个例子,基于URL的维度进行Hash运算后生成唯一的字符,根据字符获取并存储缓存。
当涉及到静态资源的更新操作时,除了URL维度外,CDN缓存还会以附加参数的形式“更新”。但这个“更新”其实是静态资源生成的新的CDN缓存。
总结
在实际应用中,HTTP请求的任何参数都可以作为CDN缓存的维度,用来结合Hash生成唯一的字符。
这些维度包括URL、参数、表头等等。但是维度的增加也意味着CDN缓存命中率的降低。
让我们举个例子:
https://docs.flc.io/favicon.icohttps://docs.flc.io/favicon.ico?v=1https://docs.flc.io/favicon.ico?v=1&b=2https://docs.flc.io/favicon.ico?b=2&v=1在以上四种情况下,比如第一次访问,即使资源相同,CDN缓存也会因为参数而失败。
基于第3点和第4点,一些CDN服务提供商额外支持参数排序和哈希,以提高命中率。
2.3 Response Headers大多数CDN服务提供商会在资源请求的响应头中输出一些与缓存命中、CDN节点、哈希字符、到期时间等相关的信息。
如图:
2.4刷新预热
刷新(即清除CDN缓存)
通过提供文件的URL或目录,CDN节点被迫将最新的文件拉回到源。
进行热身
指定的内容主动预热到CDN的节点,用户第一次访问就可以直接命中缓存,减少了源站的压力。
通常,将使用大规模迁移
2.5 CDN 常见功能 自定义缓存过期时间规则:支持配置自定义资源的缓存过期时间规则, 支持指定路径或者文件名后缀方式, 支持 Header 输出缓存过期时间自定义 header 头:如 Access-Control-Allow-Origin: * 以实现跨域自定义页面:支持设置404、403、503、504等页面页面优化:去除HTML页面页面冗余内容如注释以及重复的空白符智能压缩:对静态文件类型进行压缩, 有效减少用户传输内容大小访问控制:Refer防盗链、IP 黑/白名单等HTTPS 支持统计分析、日志管理人工智能服务:识图、鉴黄等脑回路时间
依靠以上几点可以实现哪些应用?
三.示例3.1静态资源加速
这个大家都知道,就不细说了
3.2 后端加速(缓存)—— 自定义缓存时间 http://cdn.flccent.com/带CDN但错过:
& lt?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
回声'你好世界!!!!!~';
将CDN缓存设置为10秒:
& lt?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
标头('过期:'。日期(' D,d M Y H:i:s e ',时间()+10));
回声'你好世界!!!!!~';
以上例子是阿里巴巴云CDN。请参考CDN服务提供商的文档来设置缓存到期时间。
对于动态文件(如:PHP | JSP | ASP),建议将缓存时间设置为0s,即不缓存;如果php文件等动态文件的更新频率较低,建议设置较短的缓存时间
——摘自阿里巴巴云描述文档
参考文件:
服务器端设置过期时间:https://help.aliyun.com/knowledge_detail/40080.html?spm=a2c4g.11186623.2.12.33ad45e56FKahB四、边缘计算 4.1 什么是边缘计算图像源AWS
边缘计算(Edge computing)是指在靠近对象或数据源的一侧集成网络、计算、存储和应用核心能力,并提供最近服务的开放平台。其应用在边缘端推出,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全和隐私保护等方面的基本需求。边缘计算位于物理实体和工业连接之间,或者位于物理实体的顶部。云计算仍然可以访问边缘计算的历史数据。
4.2例子:图片WEBP原理
关键词
Request Headers: Accept:image/webp函数计算(阿里云)、Lambda(AWS)等内容存储:OSS(阿里云),S3(AWS)等 —— 可选一般原则
开启 CDN Header - Accept 回源获取 Request Headers 中 Accept 中包含 image/webp(即为支持webp)通过边缘计算方式,通过源站获取对应素材转换为 webp 格式,并存储至对应 CDN 节点用户通过 CDN 输出对应格式大多数图片来源站是内容存储服务,如开放源码软件和S3,而不是特定的服务器
服务描述
HTTP Headers Accept Accept 请求头用来告知客户端可以处理的内容类型,这种内容类型用 MIME 类型来表示。借助内容协商机制, 服务器可以从诸多备选项中选择一项进行应用,并使用 Content-Type 应答头通知客户端它的选择。浏览器会基于请求的上下文来为这个请求头设置合适的值,比如获取一个CSS层叠样式表时值与获取图片、视频或脚本文件时的值是不同的。Lambda 通过 AWS Lambda,无需预置或管理服务器即可运行代码。您只需按使用的计算时间付费 – 代码未运行时不产生费用。 借助 Lambda,您几乎可以为任何类型的应用程序或后端服务运行代码,而且完全无需管理。只需上传您的代码,Lambda 会处理运行和扩展高可用性代码所需的一切工作。您可以将您的代码设置为自动从其他 AWS 产品触发,或者直接从任何 Web 或移动应用程序调用。 支持语言: Node.js/Python/Java/Go/C#/PowerShell/Ruby五、相关文档 名词解释:https://help.aliyun.com/document_detail/27102.html?spm=a2c4g.11186623.6.547.49af777dDujQhCHTTP / 1.1头字段的语法和语义:https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html途经:https://docs.flc.io/devops/cdn/
1.《cdn CDN 科普》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《cdn CDN 科普》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1051173.html