什么情况下用cdn(科普什么是CDN)
什么情况下用cdn(科普什么是CDN)
2024-11-25 09:42:39  作者:视觉流放  网址:https://m.xinb2b.cn/tech/fjz145755.html

一、概述

1.1 含义

CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。 —— 摘自《百度百科》


名词解释:Origin Server:源站,源服务器User:访问者Edge Server:CDN 的服务器

1.2 核心技术点

内容存储技术内容分发技术负载均衡技术

1.3 CDN 优势

加速:基于 CDN 各节点,就近获取内容降低负载:基于 CDN 缓存,减少源站的访问成本低:费用成本、部署成本可扩展性强:基于边缘计算

二、原理

2.1 流程图

简化版流程图


图片来源 AWS

相对“完整版”流程图


图片来源 阿里云

2.2 缓存原理

看个 PHP 缓存的例子:

<?php$result = Cache::remember('url', 100, function () { return 'Hello world...';});

大多数的缓存原理如上面例子,基于 URL 的维度进行 Hash 运算后生成唯一的字符,基于该字符进行缓存的获取与存储。

当涉及静态资源的更新操作的时候,更多的除了使用 URL 维度外,还会依靠附加参数的形式,进行 CDN 缓存的“更新”。但这个“更新”实际是静态资源生成新的 CDN 缓存。

总结

在实际的应用中,HTTP 请求的任何参数均可作为 CDN 缓存的维度,用来组合 Hash 生成唯一字符。

这些维度包括 URL、参数、Header等。但维度的增加也同样意味着 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
以上 4 种情况,如首次访问,即使资源相同,但因为参数的原因, CDN 缓存均未命中。基于第 3、4 点,有些 CDN 服务商还额外支持参数排序后在 Hash,目的就是为了提高命中率。

2.3 Response Headers

大多数 CDN 服务商会在资源请求的 Response Headers 中输出一些涉及缓存命中、CDN 节点、Hash字符、过期时间等信息。

如图:


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 但未命中:

<?phpecho 'Hello World!!!!!~';

设置 10s 的 CDN 缓存:

<?phpheader('expires: '.date('D, d M Y H:i:s e', time() 10));echo 'Hello World!!!!!~';

以上例子为阿里云 CDN,具体设置缓存过期时间,请参照 CDN 服务商文档进行设置。

对于动态文件(eg:php | jsp | asp),建议设置缓存时间为 0s,即不缓存;若动态文件例如 php 文件内容更新频率较低,推荐设置较短缓存时间

—— 摘自《阿里云说明文档》

参考文档:

服务器端设置过期时间:https://help.aliyun.com/knowledge_detail/40080.html?spm=a2c4g.11186623.2.12.33ad45e56FKahB

四、边缘计算

4.1 什么是边缘计算


图片来源 AWS

边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。边缘计算处于物理实体和工业连接之间,或处于物理实体的顶端。而云端计算,仍然可以访问边缘计算的历史数据。

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 输出对应格式
图片大多数源站均为 OSS、S3 等内容存储服务,而非具体服务器

服务说明

HTTP Headers AcceptAccept 请求头用来告知客户端可以处理的内容类型,这种内容类型用 MIME 类型来表示。借助内容协商机制, 服务器可以从诸多备选项中选择一项进行应用,并使用 Content-Type 应答头通知客户端它的选择。浏览器会基于请求的上下文来为这个请求头设置合适的值,比如获取一个CSS层叠样式表时值与获取图片、视频或脚本文件时的值是不同的。Lambda通过 AWS Lambda,无需预置或管理服务器即可运行代码。您只需按使用的计算时间付费 – 代码未运行时不产生费用。借助 Lambda,您几乎可以为任何类型的应用程序或后端服务运行代码,而且完全无需管理。只需上传您的代码,Lambda 会处理运行和扩展高可用性代码所需的一切工作。您可以将您的代码设置为自动从其他 AWS 产品触发,或者直接从任何 Web 或移动应用程序调用。支持语言: Node.js/Python/Java/Go/C#/PowerShell/Ruby

来源:全栈开发者中心

  • 过期水的危害有多大(你在喝过期水吗)
  • 2024-11-26你在喝过期水吗白开水白开水其保质期只有1天左右这里说的1天是指灌装在热水瓶中的水而凉白开只有16个小时左右我们都知道,水要烧开喝,这样其中的细菌就会因为高温而死亡但殊不知,热水从烧开就进入了保鲜倒计时开水倒入杯中,。
  • 发布会为什么没有亮点(发布会为什么坚持)
  • 2024-11-26发布会为什么坚持近期,我国持续面临境外疫情输入和本土疫情传播扩散的双重风险,局部地区疫情出现反弹10月13日,国务院联防联控机制召开新闻发布会,介绍相关情况,一文速览>>>图片来自“健康中国”微信公。
  • 西兰花适合做什么吃(被扔掉的西兰花梗)
  • 2024-11-26被扔掉的西兰花梗  要想知道西兰花的根茎能吃吗,就要先了解西兰花根部的营养价值:营养价值:西兰花是一种很受人们欢迎的蔬菜,它味道鲜美,营养也很高,还有很高的药用价值它的维生素C含量非常丰富,它比辣椒的含量都高很多它还。
  • 世界爱护地球日的日期(世界地球日善待自然)
  • 2024-11-26世界地球日善待自然4月22日,第52个世界地球日如约而至今年,我国的活动主题是“珍爱地球,人与自然和谐共生”,传递出人类对于地球这一唯一美丽家园的关注与热爱今天,让我们一起为地球转发倡议!(策划制作/袁晴)来源:光明网。
  • 街机玩家鲜为人知的格斗游戏(街机游戏史上最)
  • 2024-11-26街机游戏史上最相信提起街机格斗游戏,玩家们心中第一个想到的肯定是卡普空与SNK之间的两强争霸了,一个是街机“格斗游戏”这四个字的起源,而另一个则是让街机格斗游戏进入了属于自己的新时代可以说正是在他们的“明争暗斗”之。
  • 四月是你的谎言小提琴二重奏(四月是你的谎言)
  • 2024-11-26四月是你的谎言爱情是青春的一部重要乐章,公生与熏的爱情并非完美,却又在音乐中展现了另一种美丽的爱情,2019《四月是你的谎言》钢琴小提琴成都音乐会,一起聆听悲伤的乐曲中,蕴含着的希望份小美好2019《四月是你的谎言。
  • 冰红茶是我遥不可及的梦(一杯红茶的热度)
  • 2024-11-26一杯红茶的热度◎龙海玥他们出来吃饭好像只是为了看风景,云淡风轻的感觉在俄罗斯一个月的时光里,我见过的最美的风景,不是喀山的雪峰,不是伏尔加的奔腾,也不是贝加尔的深邃最美的,只是我依靠在涅瓦河畔,看如血的夕阳,一点点。
  • 喜马拉雅知识付费赛道(喜马拉雅得到知乎)
  • 2024-11-26喜马拉雅得到知乎近两年,知识付费市场涌现了一批玩家我们可以从喜马拉雅、得到、知乎、好好学习这四款代表性软件中,看出目前市面上知识付费产品的一些差异拿好好学习App这款产品举例:其主要分为大咖好课、好书解读、免费专栏、。
  • 路桥施工入门(有了这个施工顺口溜)
  • 2024-11-26有了这个施工顺口溜一、路基施工1、路基填土的击实试验路堤填筑选好料,填前先把试验搞;试样要有代表性,试验频次不能少2、路基排水路基要施工,排水应先行;消除水浸害,质量有保证3、路基填前碾压路堤施工先放界,清除表土至边线。
  • 大众新一代朗逸视野版新售价(大众全新朗逸尺寸加长)
  • 2024-11-26大众全新朗逸尺寸加长欢迎收看小强汽车试验站,在紧凑型轿车市场,大众朗逸销量是一直领先其他品牌车型,去年总销量达到了383314,绝对是上汽大众顶梁柱,最近有消息称新款朗逸将在本月上市,作为中期改款车型,朗逸主要针对内外设。
  • 为什么有的人总喜欢让别人请吃饭(别人请吃饭聪明人会做到)
  • 2024-11-26别人请吃饭聪明人会做到中国人喜欢在饭桌上相互联系,无论是亲戚朋友还是公司同事吃饭,看似是一件很平常的事情,但从一个人的成长经历,包括性格都能通过吃饭看出来别人请你吃饭时,不要做这些令人讨厌的事情第一件事情,不要邀请自己以外。
  • 如何面对你深情的吻(撩爆心的吻你承受得住吗)
  • 2024-11-26撩爆心的吻你承受得住吗最近《亲爱的热爱的》在网上爆火在最近更新的内容中韩商言和佟年2集3个吻满足了网友的追剧欲望其中“车窗吻”甜酥了少女心!除了今年的车窗吻还有那些撩爆人心的吻戏呢?婚纱吻陈晓陈妍希婚纱吻湿身吻《铁石心肠》。