阿里云CDN搬站第二期 运维及管理

简介: CDN通过在现有网络中增加一层新的cache节点,将源站的内容发布到最接近用户的网络节点,使得客户端在请求时直接访问命中该资源,减少回源情况,提高网站访问速度,因此很多业务都需要使用CDN进行分发。因此本文就CDN的及优化策略提供思路,便于将业务切到CDN上来1、了解阿里CDN 阿里最初也是租用第三方 CDN,结果存在功能欠缺及不稳定等诸多问题,整个系统的 规模、性能、可用性和可管理性都不符合阿里的需求,为了满足更大规模的并发需求,阿里CDN也由此应运而生。

CDN通过在现有网络中增加一层新的cache节点,将源站的内容发布到最接近用户的网络节点,使得客户端在请求时直接访问命中该资源,减少回源情况,提高网站访问速度,因此很多业务都需要使用CDN进行分发。因此本文就CDN的及优化策略提供思路,便于将业务切到CDN上来
1、了解阿里CDN
阿里最初也是租用第三方 CDN,结果存在功能欠缺及不稳定等诸多问题,整个系统的 规模、性能、可用性和可管理性都不符合阿里的需求,为了满足更大规模的并发需求,阿里CDN也由此应运而生。
目前阿里CDN的简单架构如下图,CDN节点可分为L1节点和L2节点,L1节点分布在全国各省市,L2节点分布在几个大区:
_1

1.客户端在请求一个域名时,会先向本地的localdns查询域名对应的IP地址,localdns再向权威DNS进行查询,由阿里CDN进行调度,给出此localdns对应分配的节点。
2.客户端向节点发起建连,当L1节点有缓存则会HIT,直接将数据吐给客户端。当无资源缓存时,会向L2节点进行请求对应的资源,同理L2有缓存则直接返回,无缓存就会回客户源站取资源,并按照配置的缓存策略进行缓存。
了解CDN的架构、调度以及缓存逻辑,是业务稳定的第一步,而如何实现CDN的分发,并提高CDN的缓存命中就是一个很关键的需求。

2、命中率优化:

  1. 预热功能是指将URL提前上传到CDN的L2节点上,再次访问时无需从源站获取资源,因此预热可以减少回源,保证访问效果。预热的前提是配置了域名缓存,只有配置了对应的缓存规则,按照业务需要配置缓存后测试是否生效,可以通过curl命令测试,查看文件是否有HIT:
    image

预热方法可参考:
https://help.aliyun.com/document_detail/121122.html
对于文件量大的情况,可以调用接口进行预热,注意预热是有队列限制的,队列为100,如果调用过快会报错,这也是避免大量文件进行回源打垮源站
https://help.aliyun.com/document_detail/91161.html
若有在其他厂商使用CDN,可以导出近期URL访问top列表,在阿里CDN控制台进行预热,然后再进行切量。

刷新则是当源站有文件更新时,需要调用刷新,将节点上缓存的旧文件进行刷新。刷新后CDN节点的缓存内容将会被强制过期。当您向CDN节点请求资源时,CDN会直接回源站拉取对应的资源返回给您,并将其缓存。
刷新方法可参考:
https://help.aliyun.com/document_detail/121122.html
对于源站是oss的情况,可以在OSS上配置文件自动刷新,不用人工去管理
image

  1. 去参数缓存
    阿里CDN是根据URL完整匹配进行缓存的,即对于带参数的请求,如http://www.abc.com?123,默认是不会和http://www.abc.com使用同一个缓存的。因此对于URL中带参数和不带参数其实是一个文件的业务,可以开启去参数缓存,将参数去除,改为同一个缓存,提高文件命中率:

https://help.aliyun.com/document_detail/27128.html

  1. 开启gzip压缩

        GZIP压缩可以减少传输内容大小,当CDN开启GZIP压缩后,客户端请求带上Accept-Encoding:gzip头时,CDN会响应GZIP的资源:

    https://help.aliyun.com/document_detail/27127.html

通过curl测试同样也能看到是否生效:
image

3、CDN防盗链/URL鉴权

盗链常见于某些网站直接将其他网站的资源放到自己页面上,骗取最终用户的浏览和点击率,而真正的服务网站却得不到任何的收益。因此我们可以开启防盗链,将referer来源禁用,或者只允许某一页面来源请求:

https://help.aliyun.com/document_detail/27134.html
测试可发现防盗链已生效:
_2

同时辅以URL鉴权,保护站点的内容资源不被非法站点下载盗用

https://help.aliyun.com/document_detail/85117.html

4、RAM授权:
针对不同场景可以配置不同的授权策略,比如针对只想允许子账号拥有只读以及刷新预热权限,可以使用如下策略,如有需要其他策略,可以按照ram授权策略自行授权:
https://help.aliyun.com/document_detail/27154.html
{
"Version": "1",
"Statement": [
{
"Action": [
"cdn:Describe*",
"cdn:PushObjectCache",
"cdn:RefreshObjectCaches"
],
"Resource": "*",
"Effect": "Allow"
}
]
}

5、云监控告警:

目前CDN有对接云监控,可以关注域名的指标变化看业务是否有异常,建议针对5xx状态码、下行流量等进行监控,如有变化时第一时间提醒消息接收人,避免业务影响进一步扩大

https://help.aliyun.com/document_detail/113988.html

6、日志分析

用户访问出现异常时,可以先通过CDN控制台的监控初步判断是否有异常,当看错误率没有明显变化时,可以下载CDN日志进行判断,当时用户的访问是否有异常。
目前CDN常见有两种日志
1. 历史日志:历史日志目前延时在4小时左右,可以用于分析历史问题,梳理用户异常。日志字段可参考:

https://help.aliyun.com/document_detail/27142.html
image

2. 实时日志:实时日志延时时间短,当出现问题时,可以马上查看日志情况,且日志结合了sls日志服务,可以快速统计需要的数据,比如客户端访问top10、状态码分布top情况等。也建议开通实时日志,便于问题排查

https://help.aliyun.com/document_detail/91314.html
image

相关文章
|
3月前
|
安全 机器人 数据安全/隐私保护
基于钉钉的阿里云管理实践(四)之续费充值
在阿里云资源的运营过程中,及时续费和充值是保障服务不中断的关键行动。借助钉钉及其集成的阿里云管理功能,用户可以方便地接收到续费通知,并完成充值过程。本教程将为您详细介绍从收到续费提醒信息到完成充值的全过程。
|
23天前
|
SQL 安全 数据管理
在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
【2月更文挑战第33天】在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
27 7
|
3月前
|
弹性计算 运维 监控
基于钉钉的阿里云管理实践(三)之运维管控
随着移动互联网的发展,使用移动设备进行云资源管理变得越来越普及。钉钉作为一款企业沟通和协作工具,其集成的阿里云控制台小程序让用户能够在移动端进行便捷的云资源管理操作。本教程将为您介绍如何在钉钉的阿里云控制台小程序内访问并操作阿里云资源。
110 1
|
2月前
|
域名解析 网络协议 安全
阿里云CDN
本文介绍阿里云CDN产品中涉及的基本概念,便于您更准确地理解和使用CDN产品。
59 5
|
22天前
|
Kubernetes 安全 Java
运维人少,如何批量管理上百个微服务、上千条流水线?
云效 AppStack 平台针对微服务和云原生环境下的应用管理难题,提供了以应用为中心的资源、流水线和权限管理解决方案。
|
1月前
|
安全 网络安全 CDN
阿里云CDN HTTPS 证书配置流程
阿里云CDN HTTPS 证书配置流程
157 1
|
1月前
|
SQL 分布式计算 运维
Hudi的管理与运维
Hudi的管理与运维
32 0
|
2月前
|
弹性计算 网络安全
阿里云OpenAPI提供了多种接口来管理ECS实例
【2月更文挑战第1天】阿里云OpenAPI提供了多种接口来管理ECS实例
30 0
|
2月前
|
弹性计算 安全 API
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)
570 2
|
2月前
|
弹性计算 运维 监控
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(2)
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(2)
558 0