一、介绍
由于公司经常提供CDN相关概念,本文特地总结下。
二、产品说明
百度云的内容分发网络CDN是一款基于互联网的分布式服务平台,可以加速网络上的内容分发和传输,提高网络的稳定性和访问速度。
CDN主要通过将网站的静态和动态资源缓存到网络边缘的节点上,以最近的距离、最短的时间、最佳的路线将信息传递给用户,从而提升用户访问的响应速度和体验。
百度云的CDN产品提供以下服务:
- 内容分发加速服务:通过将网站的静态和动态资源分发到离用户最近的网络边缘节点上进行缓存,提高用户访问速度和响应能力。
- 解决网络瓶颈:CDN可以通过负载均衡、降噪、优化等技术,解决网络带宽瓶颈、网络拥堵和丢包等问题,提高网络的稳定性和可靠性。
- 网络安全防护:CDN支持DOS/DDoS攻击防护、Web应用防火墙(WAF)等功能,在保证网络安全的同时,提高网站和应用的可用性。
- 数据分析服务:CDN提供详细的实时数据统计和分析服务,可以帮助用户了解网站流量、访问热点、用户来源、终端设备等信息,为业务优化提供支持。
总之,百度云的CDN是一款高性能、高可靠性的内容分发网络服务,可以为用户提供快速、安全、可靠的网络访问和服务。
三、CDN服务器和普通的服务器有什么区别?
CDN服务器的主要功能是对用户请求的内容进行分发和缓存,从而提高用户的访问速度和体验。因此,CDN服务器对网卡的性能要求确实比较高。高效的网卡可以让CDN服务器更快地接收和处理用户请求,同时提供更高的网络吞吐量和更低的延迟。
普通服务器则主要是为客户端提供各种服务,例如Web服务器、应用服务器、数据库服务器等等,对CPU和内存的需求较高。CPU主要用于处理各种请求和逻辑计算,而内存则用于缓存和存储临时数据,提高服务器的响应速度和性能。
CDN服务器和普通服务器一样,也需要CPU和内存等硬件资源的支持。如果CDN服务器性能不足,可能会影响其对用户请求的处理速度和效率。因此,在选择CDN服务提供商时,需要考虑到其硬件资源的配置和性能,以确保CDN服务的稳定性和高可用性。
CDN服务器对网卡的性能要求高,而普通服务器主要对CPU和内存的性能要求高,但两者都需要充足的硬件资源,以保证其服务的性能和可靠性。
CDN服务器和普通的服务器的区别主要在于它们的应用场景、工作模式和性能要求等方面。
- 应用场景不同 普通的服务器通常是用于主机托管、网站、应用程序、数据库等服务的部署和管理,主要提供计算资源和存储资源等功能。而CDN服务器则是专门用于分发静态和动态资源,包括图片、视频、音频、软件等,通过缓存和多节点分发等技术,加速用户对这些资源的访问,提高用户体验。
- 工作模式不同 普通的服务器通常是按需执行任务,响应用户请求或完成其他应用程序的计算和存储任务。而CDN服务器则是通过大规模的缓存和分发技术,及时地将资源缓存到多个网络边缘节点,以便更快地响应用户请求。
- 性能要求不同:普通的服务器需要提供高性能的计算和存储能力,以支持大量的业务应用和用户请求。而CDN服务器则需要提供高速、低延迟、高并发的网络访问能力,以便更好地满足用户对资源的访问需求。
综上所述,CDN服务器和普通的服务器的主要区别在于它们的应用场景、工作模式和性能要求等方面。CDN服务器是一种专门用于优化资源分发和用户访问体验的服务器,需要具备高速、低延迟、高并发等特点,以满足不断增长的互联网应用的需求。
四、CDN服务器以及CDN服务器组成的CDN集群与网络,他们会使用特别的软件吗?使用什么软件?
CDN服务器以及CDN服务器组成的CDN集群通常会使用特别设计的软件和算法来实现内容分发和网络加速的功能。
下面是CDN服务器常用的一些软件和技术:
- Nginx:Nginx是一种高性能的Web服务器,配合CDN软件可以实现静态文件的分发,提高访问速度和可用性。
- Squid:Squid是一种开源的Web缓存服务器,可以在CDN节点中缓存常用的静态内容,以减少源端服务器的负载和提高用户体验。
- LVS:LVS(Linux Virtual Server)是一种Linux下的虚拟服务器软件,可以实现TCP和UDP的负载均衡,提高服务的可用性和响应性能。
- HAProxy:HAProxy是一种高性能的负载均衡软件,支持TCP和HTTP协议的负载均衡,同时可以进行内容分发和健康检查等功能。 =
- CDNaaS平台:CDNaaS平台是一种云端全球网络加速服务,可以通过智能路由和边缘节点优化站点的内容传输和访问速度,提高全球范围内的用户体验。
- 总之,CDN服务器和CDN集群是使用特别设计的软件和算法来实现内容分发和网络加速的,其中常用的软件包括Nginx、Squid、LVS和HAProxy等,CDNaaS平台是一种云端的全球网络加速服务。
五、目前使用的CDN
蓝汛(商业CDN)
自有CDN
- 区分大文件CDN和小文件CDN
- 区分动态CDN和静态CDN,一般平台使用动态CDN(php...),游戏使用静态CDN(JS...)
- 回源方式为非推送,回源的最长周期为3个月.
六、使用CDN的目的
使用CDN是为了解决客户端访问源站导致的几个问题:
- 对源站的大量访问造成源站的访问压力过大
- 源站对于某些客户端来说物理或网络位置较远,访问网速低下。
七、CDN的原理
- 将源站的web资源copy到全国各地的CDN站点,使得客户端可以就近访问各地的web站点,提升web资源访问的速度,降低源站的访问压力
- web资源的copy有"推送"和"非推送"(拉取)两种,可以根据实际情况进行配置
- CDN一般会定期进行"回源",这里的期限可以进行配置但有最大期限的限制.
八、回源
一般来说,CDN中所说的回源,指的是当用户在请求 CDN 缓存中不存在的资源时,CDN 节点会向源服务器请求该资源的过程。
具体而言,回源就是 CDN 节点向源站服务器发送 HTTP 请求,获取并缓存源站服务器上的资源,然后将该资源缓存到 CDN 边缘节点上,以便后续的访问请求可以更快速地获取响应。
CDN 的整体工作原理是为全球各地的用户提供高速的、可靠的内容分发服务。
当用户请求CDN的内容时,CDN节点会从最近的边缘节点上提供该内容,以确保用户获得最快的响应速度和最佳的用户体验。但是,如果用户请求某个资源的访问量较大,超出了 CDN 边缘节点的容量,CDN 节点会判定缓存不存在该资源,从而进行回源操作,从源站服务器上获取该资源,缓存在 CDN 边缘节点上,从而提高资源的获取速度和缓存命中率。
回源的频率和流量是影响 CDN 成本和性能的关键因素之一。如果 CDN 的回源频率较高,流量也会相应提高,从而增加 CDN 的成本和网络负载,降低 CDN 的性能和可靠性。
因此,为了提高 CDN 的效率和性能,需要根据实际业务需求设置合理的 CDN 缓存策略和回源规则,以确保 CDN 的稳定性和高效性。
九、CDN边缘节点与CDN中心节点的区别
CDN边缘节点和CDN中心节点是CDN架构中两种不同的服务器节点,它们在功能、位置和服务范围等方面存在着一些差别。
- 功能不同:CDN边缘节点主要负责对用户请求的内容进行缓存和分发,这些节点分布在全球各地,以便为用户提供更加快速和稳定的服务。而CDN中心节点通常是在数据中心或云服务商的机房中,主要用于存储和管理CDN的核心数据和业务逻辑,例如域名解析、资源调度、负载均衡等。
- 位置不同:CDN边缘节点通常分布在世界各地,以便为用户提供更加快速和稳定的服务,同时也能够减轻源站服务器的负载压力。而CDN中心节点通常设在数据中心或云服务商的机房中,作为CDN的业务集中管理和调度中心。
- 服务范围不同:CDN边缘节点的服务范围主要是面向最终用户,为用户提供更加快速和稳定的内容分发服务。而CDN中心节点主要是面向CDN服务提供商和源站服务器等,为CDN架构中其他节点提供核心的数据管理、业务调度和负载均衡等服务。
总体上,在CDN架构中,CDN边缘节点和CDN中心节点发挥着不同的作用,它们在内容分发、管理调度和业务服务等领域都起到了至关重要的作用,是构成CDN网络的重要组成部分。
十、CDN加速原理
如上图所示,CDN加速详细步骤如下:
- 网站用户查询
my.com
的地址; - 请求权威DNS;
- 返回配置的CNAME:
my.com.a.bdydns.com
; - 请求
my.com.a.bdydns.com
对应的IP; - 根据智能调度返回离用户最近的接入点IP;
- LocalDNS返回
my.com
的IP地址并缓存; - 向CDN节点发起HTTP/HTTPS请求,访问
my.com
的内容; - CDN 通过百度智能云加速链路,将请求转发至多线中心节点;
- 中心节点向源站发起回源请求;
- 源站向中心节点返回响应;
- 中心节点、边缘节点将响应返回用户,并缓存响应内容。
十一、CDN名词解释
域名:由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。一个域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。
CNAME域名:在百度智能云CDN接入加速域名后,系统给对应域名分配一个”CNAME域名”,用将加速域名在域名服务提供商处完成CNAME配置指向这个CNAME域名。配置生效后,域名解析的工作就正式转向百度智能云,该域名所有的请求都将转向百度智能云CDN的节点。
CNAME记录:域名解析中的别名记录。用来把一个域名解析到另一个域名,再由另一个域名提供IP地址。CNAME记录允许您将多个名字映射到同一台服务器。例如,您有一台服务器名为“host.mydomain.com”(A记录),您希望用它同时提供WWW和MAIL服务。那么您可以在您的DNS解析服务商为该服务器设置两个别名(CNAME):WWW和MAIL,将这两个别名的全称“www.mydomain.com”和“mail.mydomain.com”都指向“host.mydomain.com”。添加该 CNAME 后,所有访问这两个 CNAME 的请求都会被转到host.mydomain.com。
DNS:Domain Name System,域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
边缘节点:是百度智能云CDN用于缓存客户源站内容以便快速响应不同地域用户请求的网络节点。边缘节点指网络结构中靠近用户的网络节点,对接入用户有相对于源站而言更好的响应能力和连接速度。CDN边缘节点将访问量较大的内容缓存到边缘节点的服务器上,以此来提高网终端用户访问网站内容的速度和质量。
静态内容:指用户多次访问某一资源,不同请求中访问到的数据都是相同的内容。 例如:html、css 和 js 文件、图片、视频、软件安装包、apk 文件、压缩包文件等。
动态内容:指用户多次访问某一资源,响应返回的数据是不相同的内容。 例如:API 接口、.jsp、.asp、.php、.perl 和 .cgi 文件等。
回源 HOST:即回源域名, CDN节点在回源时,在源站访问的站点域名,详情请参见回源配置。 当服务器源站存在多个不同站点时,CDN将根据您的回源HOST域名,决定CDN将从哪一个站点中获取资源。
源站:源站指用户运行业务的网站服务器,是CDN加速分发数据的来源。百度智能云CDN 的源站可以选择自有源站或对象存储(BOS)。
十二、百度云CDN产品功能
CDN提供的服务简单易用,一旦在平台上添加域名及对应的源站地址,将自动提供CNAME域名,用户只需将需要加速的域名与该CNAME地址绑定,即可享受CDN提供的加速服务,让用户的网站实现跨运营商、跨地区服务。
CDN可为用户提供多种功能:
多领域、多业务加速:CDN不仅能为地图、图片、文档在内的静态网页加载提速,也可为音频、下载、游戏等业务提供加速服务,使网站可被高速访问,有效提升网站的用户体验。
统一管理平台
- 支持加速域名的增、删、改及域名信息的查看。
- 支持回源地址、防盗链、过期时间、刷新缓存的定制。
- 支持服务的启动和停止。
资源监控
- CDN提供域名的资源监控数据报表与曲线图,包括:出口流量、回源流量、命中率、访问次数等指标数据的监控,可随时查看域名的运营状况。
- 用户可通过资源监控系统为各参数指标创建报警项,当出现报警信息时,系统将自动向用户发送短信或邮件。
日志下载:用户可通过CDN平台,下载业务运营状况日志,有助于用户进一步分析数据或存档。
流量均衡:CDN为接入CDN的服务设置缓存服务器集群,并设有专用流量调配系统,动态为接入CDN的网站选择高性能cache,为网站提供持续稳定的加速服务,即使在访问高峰期,也不会因网络拥塞而影响网站的用户体验。
安全防护
- 使用CDN服务,网站源站的地址将不会暴露在公网,避免源站遭受意外的攻击。
- CDN监控系统会随时对服务进行监控并及时提示报警,保证服务的安全。
- 支持WAF:实现了Referer黑白名单过滤以及源IP黑白名单过滤;CC攻击防御、SQL注入防御、XSS攻击防御、SSRF攻击防御、本地文件调用防御、远程文件调用防御、常见压力测试工具攻击防御、常见扫描器扫描攻击防御、 高危系统命令调用防御;防止SVN,常见备份文件泄露的功能;防止静态文件目录调用可执行文件。
刷新预热:CDN提供缓存刷新和资源预热功能。通过目录刷新/URL刷新,您可以定期清理节点缓存资源,强制CDN节点回源并获取最新文件;通过预热功能您可以在业务高峰期预热热门资源,提高资源访问效率。
图片鉴黄:基于云计算平台,通过对海量数据进行快速扫描,来检测出通过CDN加速的图片是否涉黄,能够帮助您节省90%以上的人力审核成本。
动态加速:典型的网站通常由静态页面和动态页面组合而成,以往的网站加速普遍使用动静分离加速,CDN服务无需动静分离实现整体加速。
EdgeJS边缘脚本:支持在边缘节点执行您自己编写的JavaScript代码,为您提供可编程的自定义边缘配置能力。
十三、应用场景
网站加速
- CDN提高了用户访问网站页面、图片的速度,完善的监控机制保障网站服务连续稳定,使静态页面访问速度有效提升。
- CDN无需动静分离即可实现全站整体加速。
超大文件分发
不同粒度文件全国分发加速,解决了在线游戏、音乐、视频、软件等大型文件传输慢及传输不稳定的问题。了解更多存储分发解决方案。
架构示意图:
视频点播
支持在线点播加速业务,如mp4、flv视频文件的点播加速。主要的业务场景是视频点播,建议可以搭配对象存储BOS服务,可提升回源速度,节约近回源带宽成本。
架构示意图:
视频直播
百度智能云视频点播基于大规模实时流媒体计算集群和强大的音视频信号处理算法,结合CDN技术服务深度开发优化,提供"清晰流畅、低时延、高并发"的音视频直播服务。
架构示意图:
十四、节点分布
CDN线路接入电信、联通、移动、广电、铁通、鹏博士、华数、BGP等网络,节点覆盖全国30多个省市,为用户提供可靠的服务。