曲靖市建设局网站官网,网站开发技术方案实验报告,wordpress论坛收费吗,网页设计公司兴田德润i简介摘要
CDN的全称是(Content Delivery Network)#xff0c;即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层#xff0c;将网站的内容发布到最接近用户的网络”边缘“的节点#xff0c;使用户可以就近取得所需的内容#xff0c;提高用户访问网站的…摘要
CDN的全称是(Content Delivery Network)即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层将网站的内容发布到最接近用户的网络”边缘“的节点使用户可以就近取得所需的内容提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因提高用户访问网站的响应速度。
简单的说CDN的工作原理就是将您源站的资源缓存到位于全球各地的CDN节点上用户请求资源时就近返回节点上缓存的资源而不需要每个用户的请求都回您的源站获取避免网络拥塞、缓解源站压力保证用户访问资源的速度和体验。
一、CDN加速原理 假设您的加速域名为www.aliyundoc.com接入CDN开始加速服务后当终端用户在北京发起HTTP请求时处理流程如下图所示。
当终端用户向www.aliyundoc.com下的指定资源发起请求时首先向Local DNS本地DNS发起请求域名www.aliyundoc.com对应的IP。Local DNS检查缓存中是否有www.aliyundoc.com的IP地址记录。如果有则直接返回给终端用户如果没有则向网站授权DNS请求域名www.aliyundoc.com的解析记录。当网站授权DNS解析www.aliyundoc.com后返回域名的CNAME www.aliyundoc.com.example.com。Local DNS向DNS调度系统请求域名www.aliyundoc.com.example.com的解析记录DNS调度系统将为其分配最佳节点IP地址。Local DNS获取DNS调度系统返回的最佳节点IP地址。Local DNS将最佳节点IP地址返回给用户用户获取到最佳节点IP地址。用户向最佳节点IP地址发起对该资源的访问请求。 如果该最佳节点已缓存该资源则会将请求的资源直接返回给用户步骤8此时请求结束。如果该最佳节点未缓存该资源或者缓存的资源已经失效则节点将会向源站发起对该资源的请求。获取源站资源后结合用户自定义配置的缓存策略将资源缓存到CDN节点并返回给用户步骤8此时请求结束。
二、CDN应用场景和作用
CDN的应用场景如下表所示。可使用CDN加速的站点主要包括媒体站点、网页站点和下载站点下表列出了每个站点适用的场景。
媒体站点网页站点下载站点 音乐网站视频网站新闻资讯在线教育 电商网站企业官网图文资讯金融商城门户网站社交平台 应用商店游戏下载系统OTA文件下载
应用场景场景概述图片小文件适用于网站或应用中小文件的加速分发例如各种门户网站、电子商务类网站、新闻资讯类网站或应用、娱乐游戏类网站等。大文件适用于各类大文件的下载和分发加速例如游戏安装包、应用更新、手机ROM升级、应用程序包下载等平均单个文件大小在20 MB以上。频音点播适用于各类视音频网站例如影视类视频网站、在线教育类视频网站、新闻类视频网站、短视频社交类网站以及音频类相关网站和应用支持MP4、FLV等主流视频格式。
2.1 图片小文件
图片小文件适用于网站或应用中小文件的加速分发例如各种门户网站、电子商务类网站、新闻资讯类网站、娱乐游戏类网站等。您需要将源站内容进行动静态分离静态内容使用CDN加速例如图片、CSS、JS小文件等CDN加速图片小文件业务可以帮您解决以下问题
终端用户访问慢网站小文件内容多、打开速度太慢。跨区域访问质量差终端用户分布在不同区域不同区域的访问速度和质量高低不一。高并发压力大运营推广期间源站服务器压力大服务器容易崩溃造成服务不可用。图片格式分辨率处理复杂无法根据适合的终端情况进行图片压缩和优化。
2.2 大文件下载
大文件下载适用于各类大文件的下载和分发加速例如游戏安装包、应用更新、手机ROM升级、应用程序包下载等平均单个文件大小在20 MB以上。CDN加速大文件下载业务可以帮您解决以下问题
终端用户无法下载或者下载太慢。网络环境不稳定时下载容易中断重新下载会耗费额外的资源。网站内容不安全容易被劫持或者盗链对业务造成额外的损失。高并发下载或者下载突增场景下对源站性能要求非常高且源站的带宽成本也较高。
2.3 视音频点播
视音频点播适用于各类视音频网站例如影视类视频网站、在线教育类视频网站、新闻类视频网站、短视频社交类网站以及音频类相关网站和应用您可以使用CDN产品实现对音视频内容的文件分发和访问加速。CDN加速视音频点播业务可以帮您解决以下问题
终端用户访问视频时打不开视频或容易卡顿观看不流畅。视频资源容易被劫持或盗用版权得不到有效保护。高并发访问或者访问突增场景下对源站性能要求非常高且源站的带宽成本也较高。
使用CDN可以帮您实现静态资源的加速和分发提高资源访问速度
丰富的资源节点为用户提供就近接入的同运营商CDN节点解决长距离接入和跨运营商访问带来的延迟高和速度慢的问题。资源可弹性扩展基于全球2800节点资源可弹性扩展实现业务高可用。精准的调度系统实时获取CDN节点的健康状况并根据用户所在位置和运营商来分配最佳接入节点以便取得最佳接入效果。智能的传输链路通过协议优化、连接优化等措施来降低总体时延、提高传输速度尤其是提高弱网环境下的传输速度。高效的缓存策略能够带来更高的缓存命中率命中就近节点上的远程资源提供高效地访问速度。降低您的IT成本可将您的业务算力、带宽、连接数转移到CDN边缘节点降低您的IT成本。强大的带宽输出能力全网带宽输出能力达150 Tbps。提供行业通用标准API提高易用性和适用性。
三、CDN系统架构核心
CDN的产品架构图由调度系统、链路质量系统、缓存系统和支撑系统这四大系统组成。 3.1 CDN的产品架构图
调度系统支持策略中心、DNS、HTTPDNS和302调度模式。当终端用户发起访问请求时用户的访问请求会先进行域名DNS解析然后通过CDN的调度系统处理用户的解析请求。链路质量系统链路质量探测系统会实时监测缓存系统中的所有节点和链路的实时负载以及健康状况并将结果反馈给调度系统调度系统根据用户请求中携带的IP地址解析用户的运营商和区域归属然后综合链路质量信息为用户分配一个最佳接入节点。缓存系统用户通过收到的最佳接入节点访问对应的缓存节点如果节点已经缓存了用户请求的资源会直接将资源返回给用户如果L1边缘节点和L2汇聚节点节点都没有缓存用户请求的资源此时会返回源站去获取资源并缓存到缓存系统供后续用户访问避免重复回源。分级缓存的部署架构可提高内容分发效率、降低回源带宽以及提升用户体验。支撑服务系统支撑服务系统包括天眼、数据智能和配置管理系统分别具备了资源监测、数据分析和配置管理能力。 资源监测天眼可以对缓存系统上用户业务运行的状态进行监测。例如对CDN加速域名的QPS、带宽、HTTP状态码等常见指标的监控。数据分析用户可以分析CDN加速域名的TOP URL、PV、UV等数据。配置管理通过配置管理系统用户可以配置缓存文件类型、缓存时去参数缓存等缓存规则以提升缓存系统的运作效率。
3.2 CDN网络的基础概念
源站指您运行业务的网站服务器是加速分发数据的来源。源站可用来处理和响应用户请求当边缘节点没有缓存用户请求的内容时节点会返回源站获取资源数据并返回给用户。CDN的源站可以是对象存储OSS、函数计算、自有源站IP、源站域名。
边缘节点是CDN用于缓存源站资源以便快速响应不同地域用户请求的网络节点。在CDN的帮助文档中边缘节点、CDN节点、Cache节点、缓存节点、加速节点、节点等都指CDN的边缘节点。
加速域名是您接入CDN用于加速、终端用户实际访问的域名。例如您将域名aliyundoc.com接入DNaliyundoc.com即为加速域名。
CDN通过加速域名将源站资源缓存到CDN加速节点实现资源访问加速。在DN的帮助文档中加速域名通常被简写为域名。域名Domain Name又称网域是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称用于在数据传输时标识计算机的电子方位有时也指地理位置。
CNAMECanonical Name记录指域名解析中的别名记录用来把一个域名解析到另一个域名CNAME域名再由CNAME域名来解析到需要访问的服务器IP地址。
CNAME域名是CDN生成的当您在CDN控制台添加加速域名后系统会为加速域名分配一个*.*kunlun*.com形式的CNAME域名。说明 CDN产品通过分布广泛的CDN边缘节点来为最终用户提供加速服务不同区域或者不同运营商的用户访问到的CDN节点IP地址是不同的因此加速域名就无法通过DNS的A记录解析的方式唯一解析到某个IP地址这个时候就引入了CNAME域名。添加加速域名后您需要在您的DNS解析服务商处添加一条CNAME记录将加速域名唯一解析到CNAME域名记录生效后域名解析就正式转向CDN服务该域名所有的请求都将转向CDN的边缘节点达到加速效果。CNAME域名将会解析到具体哪个CDN节点IP地址将由CDN的调度系统来综合区域、运营商、节点资源水位等多个条件来决定。
静态内容是指用户多次请求某一资源响应返回的数据都是相同的内容。例如图片、视频、网站中的文件HTML、CSS、JS、软件安装包、APK文件、压缩包文件等。CDN通过加速域名将源站的静态资源缓存到CDN遍布全球的加速节点上供用户就近访问实现资源访问加速。
动态内容是指用户多次请求某一资源响应返回的数据可能是不同的内容。例如网站中的文件ASP、JSP、PHP、PERL、CGI、API接口、数据库交互请求等。
DNSDomain Name System即域名解析服务主要功能是将域名解析为网络可以识别的IP地址即域名解析。人们习惯记忆域名但机器间互相只识别IP地址。域名解析需要由专门的DNS服务器来完成整个过程自动进行。例如您上网时输入域名aliyundoc.com会自动转换成10.10.10.10举例说明具体IP以实际为准。
SSLSecure Sockets Layer即安全套接字协议SSL协议位于TCP/IP协议与各种应用层协议之间可以有效协助Internet上的应用软件提升通讯时的资料完整性及安全性。IETF将SSL标准化后名称被改为TLSTransport Layer Security即传输层安全协议因此通常将两者并称为SSL/TLS。
当用户通过浏览器发送请求时如果CDN节点未缓存请求的资源或缓存资源已到期此时会回源站获取资源并返回给用户该过程被称为回源。
回源HOST即CDN节点回源时实际请求的域名。当源站服务器上提供多个域名服务时您可根据业务需求指定CDN节点回源时在访问的具体域名。例如您期望CDN回源时实际请求的地址为aliyundoc.com与加速域名www.aliyundoc.com不同那么您需要配置回源HOST为aliyundoc.com。
回源协议指CDN节点回源时使用的协议有可能与客户端访问资源时使用的协议相同也有可能不相同。例如当客户端使用HTTPS方式请求未缓存在CDN节点上的资源时可以配置CDN节点使用HTTPS协议回源站获取资源也可以配置使用HTTP协议回源源站不支持HTTPS协议的情况下。
SNIServer Name Indication是对SSL/TLS协议的扩展可用来解决一个HTTPS服务器同一个IP地址拥有多个域名但是无法确定客户端到底请求的是哪一个域名的服务的问题。
当您的源站IP绑定了多个域名且CDN回源协议为HTTPS时可通过配置回源SNI来指明客户端从哪个域名获取资源服务器会根据配置的SNI信息返回正确的证书给客户端。
Range回源指CDN节点在回源的HTTP请求里面携带了Range信息源站在收到CDN节点的回源请求时根据HTTP请求头中的Range信息返回指定范围的内容数据给CDN节点例如只返回某个文件的0-100Byte范围内的数据。
在视频点播、软件下载等大文件内容分发场景下Range回源可有效提高文件分发效率可以提高缓存命中率减少回源流量消耗和源站压力并且提升资源响应速度。说明 Range是HTTP请求头之一可用来指定需获取的内容的范围。
回源302跟随指CDN节点代替客户端直接处理源站响应的302状态码的内容可减少处理流程加快获取资源的速度。
Referer防盗链是基于HTTP请求头中Referer字段例如Referer黑白名单来设置访问控制规则实现对访客的身份识别和过滤防止网站资源被非法盗用。配置Referer黑白名单后CDN会根据名单识别请求身份允许或拒绝访问请求。说明 Referer是HTTP请求头的一部分携带了HTTP请求的来源地址信息协议域名查询参数可用于识别请求的来源。
带宽封顶指通过设置带宽上限来控制带宽用量减少因突发流量导致的损失。当指定加速域名在统计周期1分钟内产生的平均带宽超出预设上限CDN将停止为该域名提供加速服务且该域名会自动下线并被解析到无效地址offline.***.com无法被继续访问。
缓存过期时间指资源在CDN节点上缓存的时长。资源过期后会自动从CDN节点删除用户向CDN节点发起的访问请求会被判定为未命中缓存CDN节点会自动回源站获取最新资源返回给用户并缓存到CDN节点。
跨域资源共享CORS是一种基于HTTP头的访问控制机制允许Web服务器声明哪些源站指定的域名、协议、端口有权限通过浏览器访问指定资源。
边缘脚本EdgeScript简称ES是一个可供您快速实现CDN/DCDN定制配置的工具箱当CDN/DCDN控制台上的标准配置无法满足您的业务需求时可以使用边缘脚本通过简单地编程实现定制化业务需求。
边缘程序EdgeRoutine简称ER是一个运行在全球边缘节点上的JavaScript代码运行环境支持ES6语法和标准的Web Service Worker API。您可以将自行开发的JavaScript代码发布至全球边缘程序运行在全球边缘节点上就近地处理客户端的请求。
HSTSHTTP Strict Transport SecurityHTTP 严格传输安全是一种网站用来声明他们只能使用安全连接HTTPS访问的方法。网站可通过声明HSTS来强制客户端如浏览器只能使用HTTPS与服务器连接拒绝所有的HTTP连接并阻止用户接受不安全的SSL证书降低第一次访问请求被拦截的风险。具体配置方法请参见配置HSTS。
例如未开启HSTS的情况下当您源站使用HTTPS请求时在浏览器输入HTTP链接用户请求访问到服务器上的时候服务器会将该HTTP请求301或302重定向到HTTPS在用户请求以HTTP协议访问服务器的过程中HTTP请求可能被恶意拦截或者篡改存在安全隐患。开启了HSTS以后客户端只能使用HTTPS协议访问服务器这样就可以杜绝这类隐患。
QUICQuick UDP Internet Connections是一个基于UDP的通用网络协议能够保障网络安全性与TLS/SSL相当同时具有更低的连接和传输延时有效避免网络堵塞在丢包和网络延迟严重的情况下仍可提供可用的服务。
QUIC在应用程序层面就能实现不同的拥塞控制算法不需要操作系统和内核支持相比于传统的TCP协议拥有更好的改造灵活性非常适合在TCP协议优化遇到瓶颈的业务。
HTTP状态码英文HTTP Status Code是用来表示HTTP响应状态的数字代码可用来判断和分析服务器的运行状态。当客户端例如浏览器向服务器发出请求时服务器会返回一个包含HTTP状态码的信息头来响应客户端的请求通过状态码告诉客户端当前请求响应的状态。
HTTP常见状态码分类
1xx消息2xx成功3xx重定向4xx客户端错误5xx服务器错误
四、CDN与全站加速的区别
对比项CDN全站加速典型应用场景手机App更新、游戏包更新、视频点播长视频、短视频、图文网站。在线商城、在线支付、聊天互动、在线教育、全球对战游戏、金融理财。覆盖范围 仅中国内地全球全球不包含中国内地 仅中国内地全球全球不包含中国内地加速方式 以静态内容加速为主适用于高带宽大流量场景动态资源直接回源。 通过全球2800边缘节点基于缓存策略存储您的业务内容。基于源站负载均衡、回源权重管理、回源流量卸载等技术控制回源流量保护源站同时降低源站成本。将服务器上的图片、视频等静态资源缓存在CDN边缘节点供用户从最近的节点获取静态资源。 支持纯动态加速和动静态混合加速。 纯动态加速 针对POST请求等不能在边缘缓存的业务基于智能选路技术从众多回源线路中择优选择一条线路进行传输。 动静态混合加速 智能识别动态和静态资源静态资源缓存在边缘节点供用户就近访问动态资源基于智能选路技术从众多回源线路中择优选择一条线路进行传输。 协议支持 应用层支持HTTP、HTTPS、QUIC协议。网络层支持IPv4、IPv6协议。 应用层支持HTTP、HTTPS、WebSocket协议。传输层支持TCP、UDP协议。网络层支持IPv4、IPv6协议。调度模式 支持DNS、HTTPDNS、302调度。 支持DNS、HTTPDNS、302调度。 边缘计算 通过EdgeScript边缘脚本实现可编程CDN的业务逻辑。图片处理。 支持在边缘节点使用EdgeRoutine构建边缘程序例如A/B Test、预热等。通过EdgeScript边缘脚本实现可编程CDN的业务逻辑。图片处理。
五、CDN的性能衡量指标
您可以通过CDN的性能衡量指标观察使用CDN前后网站加速的情况评估CDN加速的效果帮助您更好地做出业务调整和决策。衡量指标主要包括您可以根据以下通用性能指标包括但不限于观察使用CDN前后您的网站情况。
通常使用CDN后的网络延时、丢包率、回源率都会降低缓存命中率则会提高。但是由于业务场景和业务类型不同即使您选择了相同配置的CDN服务实际产生的加速效果也不相同因此本文仅提供了定性的指标以供观测。表格中提到的回源率、缓存命中率是指使用CDN后的衡量指标如果您没有使用CDN回源请求数为100%缓存命中率为0。
5.1 数据上传路径 5.2 数据下载路径 指标说明DNS时间指从浏览器终端发起的访问请求开始到浏览器终端获得最终访问主机IP地址所消耗的时间。TCP时间指客户端与目标服务器建立TCP连接所消耗的时间。SSL时间指客户端和Web服务器建立安全套接层SSL连接的消耗时间。发送时间指SSL握手完成开始发送请求到请求发送完成所消耗的时间。建立连接时间建立连接时间简称为建连时间如果CDN节点使用HTTP协议加速客户业务建连时间包含“DNS时间TCP时间”如果CDN节点使用HTTPS协议加速客户业务建连时间包含“DNS时间TCP时间SSL时间”。建立连接的时间长短可以反映CDN服务的节点资源覆盖的丰富程度以及调度能力。响应时间指浏览器发出HTTP请求后Web服务器进行后台处理以及响应的时间。下载用时指您收到Web服务器返回的第一个数据包到完成下载的总时间。首包时间 指从客户端开始发送请求到收到服务器端返回的第一个HTTP协议数据包之间所需要的时间首包时间可以反映出CDN服务节点的整体性能。 在上传路径中首包时间主要包含了DNS解析时间、TCP用时、SSL用时、发送时间和响应时间。在下载路径中首包时间主要包含了DNS解析时间、TCP用时、SSL用时、发送时间和响应时间。说明 刚购买的域名通常解析时间较长和CDN的缓存时间无关。 整体性能指完成整个文件的上传或下载所需要的总时长。丢包率指在网络传输中丢失数据包的数量占发送数据包总数的比率。回源率 回源率分为回源请求数比例及回源流量比例两种 回源请求数比指CDN节点包括边缘节点和汇聚节点对于没有缓存、缓存过期可缓存和不可缓存的请求占全部请求的比例。回源请求数比CDN节点回源请求数÷用户访问CDN节点的总请求数通常越低则性能越好如果CDN回源做了分片但是用户访问CDN没有分片那么会出现CDN节点回源请求数远大于用户访问CDN的请求数的情况。回源流量比回源流量指的是CDN节点回源拉取资源的过程中源站响应给CDN节点的所有流量。回源流量比源站响应给CDN节点的总字节数÷CDN节点响应给用户的总字节数比值越低性能越好。缓存命中率 CDN缓存命中率包括字节命中率和请求命中率CDN缓存命中率通用指字节命中率缓存命中率越高性能越好。 字节命中率CDN节点响应用户的总字节数-源站响应CDN节点的总字节数÷CDN节点响应用户的总字节数。 说明 字节缓存命中率越低回源流量越大源站的流出流量越大源站的带宽资源以及其他的负载越大因此回源流量代表了源站服务器接收到的负载压力在业务使用中主要关心字节缓存命中率。 请求命中率用户访问CDN节点的总请求数-CDN节点回源请求数÷用户访问CDN节点的总请求数。
博文参考
CDN的性能衡量指标 - CDN - 阿里云