首页 > 其他分享 >如何用好CDN,让它发挥出最佳效能

如何用好CDN,让它发挥出最佳效能

时间:2023-07-06 18:00:44浏览次数:37  
标签:文件 缓存 效能 回源 CDN 配置 最佳 域名

当你的网站、APP访问量日渐增多,服务器性能不足的时候,选择接入CDN是大多数情况必须做的。下面我们就来讲讲如何用好CDN,让它发挥出最佳效能。

资源划分

如果网站资源之前没有针对文件属性进行过划分,建议进行一下初步的分析,确定资源属性归类,比如静态小文件(css、js、jpg等)、视频文件(mp4、avi等)、程序安装包(apk等)、动态资源(api、php等)等,采用不同的域名承载。这里不要嫌麻烦,所有资源使用一个域名承载,风险较大,也不利于性能优化及项目管理。域名拆分之后,接入CDN之前,你或许还需要准备证书,如果条件允许,准备一个泛域名证书会方便很多。

功能梳理

有些访问资源,可能需要一些额外的配置,比如防盗链、特殊Header配置、远程鉴权、302跳转等特性,在配置CDN之前,梳理清楚,按照前述域名规划,一一对应好,记录下来。这些功能需要你进行前置到CDN来完成,遗漏这些,将会带来一些不必要的麻烦。

源站准备

源站是CDN在缓存失效或者没有文件时获取资源的地方,可以把当前的web服务器作为CDN的源站,注意要根据业务的增长规模,适当进行扩容。此外,源站的出口要具备多ISP出口,降低潜在的CDN回源性能不佳问题,另外,建议设置主源和备源,一方面是数据备份及容灾需求,另一方面,降低因为回主源失效导致的CDN访问失败。

如果网站需要存储的文件非常多,自己搭建文件服务器成本较大,可以采用云存储COS作为源站。

配置实践

选择正确的业务类型

在接入域名配置的首选中,要注意的是,需要根据功能梳理的域名情况,选择正确的业务类型. 这关系到你的域名会被分配到合适的加速平台,一般来说CDN厂商针对小文件、下载、流媒体点播会有不同的平台和优化参数。如果选择错了,虽然不会导致业务访问失败,但却会对访问质量有一定的影响。

如果是静态小文件(css、js、jpg等),请选择静态加速;大文件,下载分发类域名,选择下载加速;视频相关选择流媒体点播加速。 

继续配置,就会涉及到缓存配置,这里虽然是选填,后期也可以在域名管理中进行修改,建议提前规划好。

 

缓存配置

如果是大文件和点播类型,建议打开分片回源,静态小文件就没有必要,分片回源可大大提高大文件的命中率和分发效果。另外,如果业务URL中携带的querystring等参数,跟文件内容无关而且参数经常变化,即参数变化,并不代表文件有变化,强烈建议开启过滤参数,这会大大提高缓存命中率,提高访问质量。至于,缓存时间,这里按照业务需求即可,文件更新不是同名情况,可以设置久一些。另外,需要注意,需要缓存的文件,源站返回的cache-control header一定不要是no-cache 、 no-store 或 private,此时平台策略都是不缓存的。

另外,通过域名管理界面,在回源配置项目中,还可以设置:

回源跟随-开启后,针对源站返回的301、302进行Follow获取资源缓存。

回源超时—可以调整回源连接和读取的超时时间,针对某些情况源站响应慢的场景,调大后,可大大缓解回源失败。

配置热备源站

 

备源存在的重要意义,是当CDN需要回源,连接主站失败或者主站故障时,虽然连接主站会有多次重试,但是备源会在主源失效时立刻被启用,不会造成这一次请求失败,对用户无感。

配置HTTPS

当前HTTPS是必不可少的功能,建议在配置好域名后,把HTTP2以及OCSP开个打开:

•HTTP2.0—开启后,支持http2,建议WEB页面开启,优化页面速度。当前主流浏览器都已经支持,也是一种主流趋势。

OCSP装订—OCSP(Online Certificate Status Protocol,在线证书状态协议)是用来检验证书合法性的在线查询服务,一般由证书所属 CA 提供。某些客户端会在 TLS 握手阶段进一步协商时,实时查询 OCSP 接口,并在获得结果前阻塞后续流程。OCSP 查询本质是一次完整的 HTTP 请求 - 响应,这中间 DNS 查询、建立 TCP、服务端处理等环节都可能耗费很长时间,导致最终建立 TLS 连接时间变得更长。建议开启,开启后,极大优化TLS握手时间。另外,针对一些签发的比较低端或者免费的证书(比如:Let's Encrypt),当证书分配的ocsp地址是海外,没有在大陆加速的情况,可以大大缓解apple系统访问失败的情况——证书ocsp地址查看:openssl x509 -noout -ocsp_uri -in xx.pem 或者浏览器里面打开:

 

证书ocsp地址

如果这个ocsp域名解析都在海外,那随时可能会被墙,导致ios打不开资源,因为IOS系统的证书校验策略依赖这个方式。其他系统很少遇到,他们有使用另外的证书检查机制。

配置智能压缩

这个静态资源,一定要打开,减少流量,加快传输速度。压缩的好处不再多说。

 

切换解析

以上工作做完,域名各项配置完成后,CDN会分配一个CNAME地址给你,需要你将加速域名DNS解析指向这个CNAME地址,你才能真正的使用CDN服务。

数据分析

当服务在CDN上面运行起来后,不要走开,你要关注流量、带宽以及命中率情况,以便进行及时的调整,提出建议或者改进给CDN厂商,获取最佳收益。通过控制台的统计分析功能,你可以实时获取各项指标。以及根据这些数据配置一些必要的监控。比如关注TOP用户访问地区,针对这些地区的访问进行质量探测对比,看看是不是本地覆盖等等。

标签:文件,缓存,效能,回源,CDN,配置,最佳,域名
From: https://www.cnblogs.com/txycsig/p/17532915.html

相关文章

  • 火山引擎DataLeap数据质量解决方案和最佳实践(三):最佳实践
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群最佳实践前面介绍了DataLeap数据质量平台的一些实现方式,下面为大家介绍一些我们在数据量和资源这两个方面的最佳实践。表行数信息-优先HMS获取内部的离线监控中,表行数的监控占比非常......
  • 容器环境下的持续集成最佳实践:构建基于 Drone + GitFlow + K8s 的云原生语义化 CI 工
    云原生(CloudNative)是伴随的容器技术发展出现的的一个词,最早出自Pivotal公司(即开发了Spring的公司)的一本技术小册子MigratingtoCloud-NativeApplicationArchitectures,其中定义了云原生应用应当具备的一些特质,如无状态、可持续交付、微服务化等。随后云原生概念被广......
  • 123. 买卖股票的最佳时机 III
    1.题目读题  考查点 2.解法思路 有两种解法动态规划双指针代码逻辑 具体实现 动态规划思路动态规划的思路是这样的:我们可以把问题分解成多个子问题,每个子问题都是在某一天结束时,完成了多少次交易,手上是否持有股票,以及此时的最大利润是多少。我们......
  • vue-cropper cdn vue3 打包后提示找不到
    vue-croppercdnvue3打包后bug vue3项目tscdn引入  vue-cropper官网推荐引入方式   dev环境报错运行不了后面发现打包后找不到  VueCropper,原来是名称问题, 修改如下:main.ts直接引入 再添加脚本到html文件window.VueCropper=window['vue-cropper'......
  • Java异常处理机制及Result最佳实践
    从jvm层看待异常处理机制1.当方法抛出异常时,首先会在当前方法的异常表中查找符合的异常处理程序2.如果找到匹配的异常处理程序,则继续在该异常处理程序中继续执行逻辑3.如果找不到匹配的,则弹出当前栈帧即结束当前方法的执行,让上一层调用者在其异常表中寻找匹配的异常处......
  • CodeGeeX荣获2023稀土开发者大会“年度最佳开发工具”奖项
    XDC2023稀土开发者大会6月30日在北京成功举办,今年大会主题为“代码不止,掘金不停”。除了为开发者提供多达60场+的技术分享之外,针对开发者使用的工具也展开了一系列的专业评选,这也是每年大家非常期待的环节。开发工具是每个开发者每天都会使用的产品,深度影响着开发者的工作效率和......
  • 火山引擎DataLeap数据质量解决方案和最佳实践(二):解决方案
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群DataLeap流批数据质量解决方案产品功能架构火山引擎DataLeap流批数据质量解决方案有4个大的功能:离线数据质量监控:解决批和微批监控场景,支持Hive、ClickHouse、ES等多种数据源,并有字段、唯一性......
  • 火山引擎DataLeap数据质量解决方案和最佳实践(二):解决方案
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群DataLeap流批数据质量解决方案产品功能架构火山引擎DataLeap流批数据质量解决方案有4个大的功能:离线数据质量监控:解决批和微批监控场景,支持Hive、ClickHouse、ES等多种数据源,并......
  • CDN如何通过减少延迟来提高性能
    对象存储解决方案概述假设我们有一个应用程序将上传的文件存储在世界某个地方。对于本示例,它是来自Akamai云计算服务的对象存储存储桶,我已将其部署到该us-southeast-1区域。您可能使用不同的提供商和不同的区域,但以下几点仍然适用。因此,当我上传Nugget打哈欠的可爱照片时,我......
  • C++ 核心指南之资源管理(下)—— 智能指针最佳实践
    C++核心指南(C++CoreGuidelines)是由BjarneStroustrup、HerbSutter等顶尖C+专家创建的一份C++指南、规则及最佳实践。旨在帮助大家正确、高效地使用“现代C++”。这份指南侧重于接口、资源管理、内存管理、并发等High-level主题。遵循这些规则可以最大程度地保证静......