前端发布 CDN缓存

news/2024/11/13 14:41:07/

公司给服务器加了CDN,导致有时前端代码上传打包后,正式环境页面效果却不更新。每次都需要去找运维刷CDN…让我彻底记住了CDN缓存

CDN(Content Delivery Network,内容分发网络)是一种广泛使用的互联网技术,旨在提高用户访问网站的速度和可靠性。CDN 的核心思想是将网站的内容缓存到全球分布的边缘节点上,让用户能够从最近的节点获取数据,从而减少延迟和带宽消耗。

CDN__5">CDN 缓存机制的基本原理

CDN缓存机制主要包括以下几个方面:

  • 边缘节点:
    CDN 在全球部署了大量的边缘节点(Edge Nodes),这些节点位于用户的地理位置附近,可以更快地响应用户的请求。
    边缘节点上存储了来自源站(Origin Server)的数据副本。
  • DNS 解析:
    当用户请求一个使用 CDN 的网站时,首先会通过 DNS 请求来解析域名。
    CDN 的 DNS 服务器会根据用户的地理位置信息将请求重定向到最近的边缘节点。
  • 缓存策略:
    边缘节点上的缓存策略决定了哪些内容应该被缓存以及缓存多久。
    通常,CDN 会根据 HTTP 响应头中的缓存控制指令(如 Cache-Control 和 Expires)来决定缓存时间。
    如果边缘节点上没有所需内容或者内容已过期,边缘节点会向源站发起请求获取最新内容,并将其缓存起来供后续请求使用。
  • 负载均衡:
    CDN 不仅负责内容的分发,还会根据各个节点的负载情况智能地分配请求,确保系统的高可用性和高性能。
    负载均衡有助于防止某个节点因请求过多而超载。
  • 更新机制:
    当源站的内容发生变化时,CDN 需要有一种机制来更新边缘节点上的缓存
    一种常见的方式是通过设置较短的缓存过期时间(TTL),让内容定期刷新。
    另一种方式是源站主动通知 CDN 删除某个资源的缓存,这种做法称为“缓存预热”或“缓存刷新”。
  • 安全性:
    CDN 还提供了额外的安全功能,如 DDoS 防护、Web 应用防火墙(WAF)等,以保护源站免受攻击。

CDN__27">CDN 缓存策略示例

假设你有一个网站,并且启用了 CDN 服务,那么 CDN缓存机制可以如下工作:

  • 用户请求:
    用户通过浏览器请求 https://example.com/some-image.jpg。
    用户的 DNS 请求被重定向到最近的 CDN 边缘节点。
    边缘节点检查:
    边缘节点检查是否已经有 some-image.jpg 的缓存副本。
    如果有且未过期,则直接返回给用户。
    如果没有或已过期,则向源站发起请求。
  • 源站响应:
    源站返回 some-image.jpg 给边缘节点,并附带 Cache-Control 或 Expires 头部指示缓存时间。
    边缘节点缓存该文件,并返回给用户。
  • 缓存更新:
    当源站的内容发生变化时,源站可以通过重新上传内容并设置新的缓存控制指令来更新 CDN 中的缓存
    CDN 也可能提供 API 或者管理界面,允许管理员手动刷新缓存

CDN__43">CDN 缓存的好处

  • 加速访问:用户可以从最近的边缘节点获取数据,减少延迟。
  • 减轻源站压力:大部分请求由边缘节点处理,减少了源站的负载。
  • 提高可用性:即使源站暂时不可用,边缘节点上的缓存内容仍然可以继续提供服务。
  • 节省带宽成本:CDN 通常使用更高效的路由策略,帮助降低带宽成本。

通过以上机制,CDN 能够显著提升网站性能,提高用户体验,并且增强系统的可靠性和安全性。


http://www.ppmy.cn/news/1528232.html

相关文章

修改 HTTP 和 HTTPS 代理设置为 `http://127.0.0.1:8118

修改 HTTP 和 HTTPS 代理设置为 http://127.0.0.1:8118 要将当前的 HTTP 和 HTTPS 代理从 http://127.0.0.1:1080 修改为 http://127.0.0.1:8118,可以按照以下步骤操作: 1. 临时修改代理设置 如果只希望在当前终端会话中临时修改代理设置,…

react-native连接android原生模块

目录 搭建react-native项目 搭建node和jdk的环境 搭建Android的环境 创建React-native项目 运行react-native项目 下载夜神模拟器 使用adb连接夜神浏览器。 运行react-native项目 编写原生安卓的apk android studio中编写原生代码 在React-native编写代码。 搭建rea…

无人机飞行时状态详解!!!

飞行姿态 无人机的飞行姿态主要涉及其在空中的空间位置和方向,通过控制横滚、俯仰和偏航来实现。 横滚:无人机绕其前后轴(通常是X轴)的旋转运动,表现为左右倾斜。当无人机的左翼低于右翼或右翼低于左翼时&#xff0c…

docker挂载宿主机文件run命令启动报错

背景 使用docker安装mysql8,docker run 命令提示报错 命令: docker run -d \ -p 3306:3306 \ -v ~/docker/mysql8/log/mysqld.log:/var/log/mysqld.log \ -e MYSQL_ROOT_PASSWORD=123456 \ --name mysql8 mysql:8.0.36 报错信息 docker: Error response from daemon: fai…

Spring Boot校园管理系统:技术选型与架构设计

第2章相关技术 2.1 B/S架构 B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的…

网站后缀名学习

目的 学习并记录一些常见的网站后缀名 常见网站后缀名 1、com commercial翻译为商业的。 最常见的域名后缀,全世界范围使用最多的域名,原用于商业组织,现在个人也能注册。 2、net network翻译为网络,更多是专业技术类的网址…

camtasia2024绿色免费安装包win+mac下载含2024最新激活密钥

Hey, hey, hey!亲爱的各位小伙伴,今天我要给大家带来的是Camtasia2024中文版本,这款软件简直是视频制作爱好者的福音啊! camtasia2024绿色免费安装包winmac下载,点击链接即可保存。 先说说这个版本新加的功能吧&#…

SQL 查询语句汇总

在软件开发和数据分析中,SQL(结构化查询语言)是与数据库交互的重要工具。为了更好地理解 SQL 查询语句的使用,本文将设计一个简单的数据库,包括几张表,并通过这些表展示各种 SQL 查询的应用。 一、背景信息…