Cdn理解记录

一,一些基本概念

Cdn 能提升网站加载速度和性能,是广泛分布的服务节点和智能路由技术的产品。cdn 服务提供商会在多地部署服务器,这些服务器被称为边缘节点。当用户访问使用cdn 的网站,用户的请求首先会到达dns 服务器,由这个服务器解析计算得出合适用户的边缘节点ip 。一旦用户获得了边缘节点地址,他就会向那边发起请求,如果请求内容已被缓存,则直接返回,如果请求没有被缓存,则节点会请求原始服务器,以获取最新内容,并在发送给用户之前更新本地缓存。请求源服务器获取数据,在节点收到结果后,同步返回给用户,并不是节点接受所有相应后在给到用户。 Cdn 的使用,以阿里云cdn 为例子,你需要先有一个原始的访问域名。然后通过阿里云cdn 平台配置域名加速,缓存策略等。配置完成后,用户仍然访问这个地址,并且能够得到内容加速效果。cdn 后台会提供cname 解析地址,你需要把这个地址放到,原域服务商的dns 管理页面的cname 解析记录。

上面总结概述了CDN(内容分发网络)的工作原理和使用流程,但有一些细节可以更正或补充:

  1. DNS解析过程:你提到用户请求首先到达DNS服务器,然后DNS服务器会解析计算出合适的边缘节点IP。实际上,这个过程通常涉及到多个DNS服务器,包括本地DNS、权威DNS等,并且可能使用了基于地理位置、网络状况等因素的智能DNS解析策略来选择最优的边缘节点。

  2. 请求处理流程:在描述请求处理时,你说“并不是节点接受所有相应后在给到用户”。这句话表达得不够清晰。正确的说法是,当边缘节点从源站获取数据时,它会在收到完整响应之前就开始向客户端发送已接收的部分数据,这被称为流式传输。这种方式减少了用户的等待时间,提高了用户体验。

  3. 缓存更新机制:虽然提到了如果内容未被缓存,则边缘节点会请求原始服务器并更新本地缓存,但没有详细说明如何保证缓存的一致性和新鲜度。实际上,CDN服务通常提供了多种缓存控制机制,如设置缓存过期时间、支持HTTP缓存控制头等,以确保缓存的内容能够及时更新。

  4. 安全性:在讨论CDN配置时,安全性的考虑也是很重要的一个方面。比如,可以通过HTTPS加密来保护数据传输的安全;利用CDN提供的WAF(Web应用防火墙)功能增强网站防护能力;以及通过访问控制列表(ACL)等手段限制对资源的访问。

  5. 监控与日志:为了优化性能及故障排查,大多数CDN平台都提供详细的流量统计、错误率分析等功能,这些工具对于维护高质量的服务非常有用。

总体来说,你的总结准确地介绍了CDN的基本概念及其工作方式。上述补充可以帮助读者更加全面地理解CDN技术的应用场景和技术细节。

二、请求cdn时链路

在cdn 应用场景中,如果我原始的地址为,test.com/mc/1.png,通过这个路径能访问到oss 桶内的图片。现在我对这个域名test.com配置cdn 假设配置完成。此外我还给有一个nginx 配置拦截这个域名,并且当为,test.com/mc/**时,重定向到一个不能查看图片的网站,请问,在访问test.com/mc/1.png时,会发生什么?

通义回复:

如果Nginx配置了拦截 /mc 及其以下的所有目录,并将这些请求重定向到另一个网站,那么对于 test.com/mc/1.png 的请求,实际流程会是这样的:

  1. DNS解析:用户的浏览器首先解析 test.com 的DNS记录,指向CDN的边缘节点。

  2. 请求到达CDN:用户对 test.com/mc/1.png 的请求被发送到最近的CDN边缘节点。CDN边缘节点会检查是否有缓存的内容可以提供给用户。如果没有缓存或缓存已过期,CDN将会向源站发起请求以获取最新的内容。

  3. 请求转发到源站:由于没有缓存或者缓存已经过期,CDN会将请求转发到配置中的源站(即Nginx服务器)。

  4. Nginx处理请求:Nginx接收到请求后,根据配置规则发现该请求匹配 /mc 及其子路径,因此它执行重定向操作,将请求重定向到另一个不能查看图片的网站。

  5. 重定向响应返回:Nginx将重定向响应(例如HTTP 301或302状态码)返回给CDN边缘节点。

  6. CDN传递重定向响应:CDN边缘节点将这个重定向响应传递回用户的浏览器。用户的浏览器会根据重定向响应中的URL自动发起新的请求到指定的网站。

在这种情况下,CDN会有流量记录,因为:

  • 用户的初始请求 test.com/mc/1.png 被发送到了CDN。
  • CDN转发了这个请求到Nginx。
  • Nginx返回了一个重定向响应,这个响应通过CDN传回给了用户。

因此,尽管最终用户没有从CDN获取到图片,但整个请求和响应的过程都会被CDN记录下来。这包括原始的图片请求、Nginx返回的重定向响应以及任何可能产生的其他通信数据。这些流量记录通常可以在CDN提供商的管理界面中查看。

还是这个场景,如果我去掉nginx ,不使用它。继续使用cdn ,我将访问路径修改为test.com/1.png,1.png 就是oss 桶访问路径,并且我在oss 配置了桶映射域名,test.com,请问我访问这个图片地址是,经过了哪些步骤?

好的,假设你已经配置了CDN,并且OSS桶映射的域名是 test.com。当你访问 test.com/1.png 时,请求会经过以下步骤:

  1. DNS解析

    • 用户在浏览器中输入 test.com/1.png
    • 浏览器首先进行DNS查询,以获取 test.com 的IP地址。
    • DNS服务器返回的是CDN边缘节点的IP地址(因为你在DNS中配置了CNAME记录指向CDN)。
  2. 请求到达CDN边缘节点

    • 浏览器使用DNS解析得到的IP地址向最近的CDN边缘节点发起HTTP/HTTPS请求,请求路径为 /1.png
  3. CDN缓存检查

    • CDN边缘节点收到请求后,会检查其缓存中是否已经有该图片 1.png 的副本。
    • 如果CDN边缘节点有缓存并且缓存未过期,它会直接将缓存的内容返回给用户的浏览器。
    • 如果没有缓存或者缓存已过期,CDN边缘节点会向OSS服务发起回源请求,以获取最新的内容。
  4. 回源请求到OSS服务

    • CDN边缘节点根据配置的回源规则,向OSS服务发起请求,请求路径仍然是 /1.png
    • OSS服务接收到请求后,查找对应的文件 1.png
    • 如果文件存在并且用户有权限访问该文件,OSS服务会返回文件内容及其元数据(如Content-Type、Content-Length等)。
    • 如果文件不存在或用户没有权限访问,OSS服务会返回相应的错误状态码(如404 Not Found 或 403 Forbidden)。
  5. 响应返回到CDN边缘节点

    • OSS服务将文件内容返回给CDN边缘节点。
    • CDN边缘节点收到文件后,将其缓存起来,以便后续的请求可以直接从缓存中提供,减少对OSS服务的直接请求次数。
  6. 响应返回给用户

    • CDN边缘节点将文件内容返回给用户的浏览器。
  7. 浏览器显示图片

    • 用户的浏览器接收到来自CDN边缘节点的响应,如果响应是成功的(如HTTP 200 OK),则浏览器会解析并显示图片。

总结一下,整个过程包括DNS解析、请求到达CDN边缘节点、CDN缓存检查、回源请求到OSS服务、响应返回到CDN边缘节点、以及最终响应返回给用户的浏览器。在这个过程中,CDN起到了缓存和加速的作用,减少了对OSS服务的直接请求次数,提高了用户体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值