阿里云CDN加速器基本概念与购买开通
文章目录
- 1.CDN加速器的基本概念
- 1.1.CDN加速器基本介绍
- 1.2.网站引入CDN加速器的架构图
- 1.3.CDN加速器的工作原理
- 1.4.引入CDN后域名解析变成了CNAME?
- 2.开通阿里云CDN加速服务
1.CDN加速器的基本概念
CDN加速器官方文档:https://help.aliyun.com/product/27099.html
1.1.CDN加速器基本介绍
内容分发网络(Content Delivery Network,CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。
CDN相当于缓存服务,由不同地区的服务器组成的分布式网络,网站数据会缓存到CDN一份,当用户请求时,首先到达CDN加速器,由CDN将用户的请求分发到距离用户最近区域的服务器,加速网站的网络,当用户请求的数据在CDN不存在时,CDN则会回源,由CDN去请求WEB服务器中的数据,避免恶意用户频繁请求网站流量。
系统的使用者可能遍布全国各地,如果程序的服务器是在北京,那么西藏、云南访问我们的程序相较于京津冀的用户就会特别的慢,很有可能产生超时的现象,即使网站优化的再好,偏远地区的用户无法正常使用系统,还是白搭。
针对这种现象,内容分发网络CDN,得到了广泛的应用,只要是互联网环境下的程序,几乎都是采使用CDN加速器。
CDN应用场景:
- 图片小文件
- 可以将网站的静态资源包括图片等等缓存在CDN中,加速用户请求。
- 大文件下载
- 当大文件缓存在CDN后,用户的下载速度将会有所提升。
- 音视频文件
- 大多数的音视频公司都会将视频缓存在CDN,用户在播放视频时速度就会很快。
1.2.网站引入CDN加速器的架构图
在下面这个网站架构中就引入了CDN加速器。
当没有使用CDN时,用户的请求是直接到达WEB服务器的,使用了CDN加速器后,用户的请求首先会到达距离用户最近的边缘服务器,例如上海的用户,上海的用户在请求网站后,流量会被CDN首先处理,CDN会将用户的请求分发到距离上海用户最近的上海边缘服务器,此时就会大大加快上海用户对网站的访问,平时上海用户访问北京机房的WEB服务器可能会花费5秒,接入CDN后,用户直接就可以在上海的边缘服务器中获取到北京机房的WEB程序的数据,大大加快了网站的访问。
当CDN缓存中没有用户需要的数据时,也不会由边缘服务器直接请求WEB服务器,而是由CDN去请求我们的WEB服务器,然后将数据缓存CDN中,再由边缘服务器从CDN中读取最新数据,也可以避免因为大量的请求导致网站服务器崩溃。
也可以直接由WEB服务器将数据推送到CDN,由CDN下发到各个边缘服务器,提高数据的命中率。
使用CDN加速器后网站的请求流程如下:
用户—>CDN—>边缘服务器处理请求
当用户请求的数据不在CDN时:CDN—>WEB服务器
↓
边缘服务器—>CDN—>用户
由CDN回源WEB服务器,WEB服务器缓存在CDN中,边缘服务器从CDN中读取新数据然后返回给用户
从上图中可以得出CDN缓存数据的方式有两种:
- 边缘服务器回源CDN加速器,由CDN加速器从WEB服务器中获取最新的数据,然后进行缓存。
- 由WEB服务器向CDN推送缓存数据,由CDN加速器将缓存数据推送到各个边缘服务器。
1.3.CDN加速器的工作原理
网站接入CDN后,域名会被DNS通过CNAME的方式解析到由CDN提供的域名,因此在使用CDN之前,网站的方式方式必须是域名并且可以解析成IP。
1)当用户在请求www.aliyundoc.com网站资源时,首先由本地DNS将网站解析成对应的IP。
2)如果本地DNS中有域名解析记录,那么直接返回给用户,如果不存在解析记录,本地DNS服务器就会去请求www.aliyundoc.com这个域名的解析记录。
3)网站接入CDN后,www.aliyundoc.com域名会被DNS的CNAME解析记录解析成由CDN加速器提供的域名www.aliyundoc.com.example.com。
4)当www.aliyundoc.com.example.com域名通过一层层的解析,最终到达CDN的服务器后,CDN会根据用户请求的源IP,通过CDN调度系统,将网站资源分发到距离用户最近的边缘服务器,并提供节点的IP地址,这个IP地址会被作为www.aliyundoc.com.example.com 域名解析后的地址。
5)阿里云CDN会将分配的节点IP返回给本地DNS服务器,此时用户请求的www.aliyundoc.com域名透过CNMAE之后的域名,就已经解析成了距离用户最近的边缘服务器地址。
6)本地DNS服务器会将域名的解析记录返回给用户。
7)此时用户访问网站的请求都会落在最佳的边缘服务器上,从而加快网站的访问,当边缘服务器中没有缓存数据时,CDN就会回源WEB服务器,然后将数据进行缓存,由边缘服务器读取,用户直接从边缘节点中获取网站的资源,加快流量访问。
1.4.引入CDN后域名解析变成了CNAME?
当我们的网站引入CDN加速器后,域名解析记录从A记录变成了CNAME记录,这时为什么呢?
CDN的主要作用就是将用户的请求分发到距离用户最近的边缘服务器,由这个节点提供资源的访问,从而加速网站的访问,那么如何才可以知道用户距离哪一个边缘节点最近?为了解决这个问题所以才将域名的解析记录从A记录变成的CNAME记录,在解析源网站域名时,将域名重定向到了由CDN提供的新域名,然后使DNS去解析CDN提供的域名,最终解析到CDN的服务器上,CDN服务器就可以获取到用户请求的源IP,得到了源IP后,就可以通过CDN调度系统根据请求的源IP,将请求调度在距离用户最近的边缘服务器上,并且提供这个边缘服务器的IP地址,然后将这个IP地址由CDN服务器回传给本地DNS,此时本地DNS就拿到了域名与最佳节点IP的解析记录,域名解析完成后,此时用户请求的网站资源就会落到边缘服务器中,加快网站的访问。
2.开通阿里云CDN加速服务
1)在控制台中搜索CDN加速器,进入CDN控制台。
2)CDN的付费模式按量付费,同意服务条款,点击立即开通。
3)CDN服务开通成功。
相关文章:

阿里云CDN加速器基本概念与购买开通
文章目录 1.CDN加速器的基本概念1.1.CDN加速器基本介绍1.2.网站引入CDN加速器的架构图1.3.CDN加速器的工作原理1.4.引入CDN后域名解析变成了CNAME? 2.开通阿里云CDN加速服务 1.CDN加速器的基本概念 CDN加速器官方文档:https://help.aliyun.com/product/…...
2023河南萌新联赛第(六)场:河南理工大学-F 爱睡大觉的小C
2023河南萌新联赛第(六)场:河南理工大学-F 爱睡大觉的小C https://ac.nowcoder.com/acm/contest/63602/F 文章目录 2023河南萌新联赛第(六)场:河南理工大学-F 爱睡大觉的小C题意解题思路 题意 新学期的概…...

[C++ 网络协议编程] 域名及网络地址
1. DNS服务器 DNS(Domain Name System):是对IP地址和域名(如:www.baidu.com等)进行相互转换的系统,其核心是DNS服务器。 我们输入的www.baidu.com是域名,是一种虚拟地址,而非实际地…...

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?
文章目录 前言一、Cookie1, 什么是 Cookie2, Cookie 从哪里来3, Cookie 到哪里去4, Cookie 有什么用 二、Session1, 什么是 Session2, 理解 Session 三、Cookie 和 Session 的区别总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 …...

使用U盘重装Windows10系统详细步骤及配图【官方纯净版】
文章目录 1.制作启动盘1.1准备U盘及一台电脑1.2下载win10安装包 2.安装操作系统2.1插入系统安装盘2.2设置启动盘为第一启动项2.3开始安装操作系统 3.安装成功后进入图形界面3.1启动问题3.2驱动问题3.3调出"控制面板"3.4给磁盘分区 4.win10激活 前天下午不知道怎么想的…...

数据结构之——(手撕)顺序表
本章会介绍的知识点如下图: 1: 顺序表的概念:顺序表是用一段物理地址连续的存储单元依次存储数据的线性结构,通常我们使用数组来表示,对数组进行增删查改。 顺序表的结构:逻辑结构与物理结构都是内存中一块…...

冠达管理:非银金融是什么?
非银金融(Non-banking Financial Institutions,简称非银)是指除了传统的银行以外的其他金融机构。与银行不同的是,非银金融机构没有颁发钱银的权利,但在金融市场中发挥着重要的效果。在全球范围内,非银金融…...
go 结构体
定义结构体 package mainimport "fmt"type Person struct {age, id intname, email string }func main() {var p Personfmt.Printf("p: %v\n", p)p.age 100p.name "jaja"fmt.Printf("p.name: %v\n", p.name)// 匿名结构体var P…...

C++学习笔记---- 引用
1、作用 给变量起别名 基本语法:数据类型 &别名 原名 示例: #include <iostream> using namespace std;int main() {int a 1;int &b a;cout << "a " << a << endl;cout << "b " <…...

2023国赛数学建模思路 - 案例:感知机原理剖析及实现
文章目录 1 感知机的直观理解2 感知机的数学角度3 代码实现 4 建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 感知机的直观理解 感知机应该属于机器学习算法中最简单的一种算法,其…...

Cesium加载Supermap的wmts服务
最近使用cesium 加载supermap的wmts 服务,多次遇到加载异常与白页面问题,纠结好久最后才搞定[特此记录] 1、首先找到方法加载wmts 的api 文档 官方提示使用WebMapTileServiceImageryProvider加载wmts 2、然后编辑加载代码 //1.新建ImageryProviderlet…...

C/C++:C/C++在大数据时代的应用,以及C/C++程序员未来的发展路线
目录 1.C/C在大数据时代的应用 1.1:C/C数据处理 1.2:C/C数据库 1.3:C/C图像处理和计算机视觉 1.3.1:导读 2.C/C程序员未来的发展路线 2.1:图导 1.C/C在大数据时代的应用 C/C在大数据时代中仍然是一种被广泛应用的编…...

linux RabbitMQ-3.8.5 安装
软件版本操作系统CentOS Linux release 7.9.2009erlangerlang-23.0.2-1.el7.x86_64rabbitMQrabbitmq-server-3.8.5-1.el7 RabbitMQ的安装首先需要安装Erlang,因为它是基于Erlang的VM运行的。 RabbitMQ安装需要依赖:socat和logrotate,logrotate操作系统已经存在了&…...
单链表Single-LinkList
0、节点结构体定义 typedef struct LNode{int data;struct LNode *next;} Lnode, *LinkList; 1、初始化 bool InitList(LinkList &L) //初始化 {L new LNode;if(!L){return false;}L->next NULL;return true; } 2、创建 (1)头插法 void Cr…...
AI嵌入式全景:各厂商、系列和开发工具的综合概览
要看几个方面 1 算力: 2 支持何种模型: 3 是否支持可视化的窗口系统: 一般而言各个平台均采用linux操作系统,官方提供对应SDK,安装好后可使用硬件加速资源。 而且如果要使用其硬件加速,一般都要完成模型转…...

mysql Left Join on条件 where条件的用法区别
数据准备 SELECT t1.id,t1.name,t2.local FROM t1 LEFT JOIN t2 ON t1.idt2.id; 执行结果 SELECT t1.id,t1.name,t2.local FROM t1 LEFT JOIN t2 ON t1.idt2.id and t2.localbeijing; SELECT t1.id,t1.name,t2.local FROM t1 LEFT JOIN t2 ON t1.idt2.id where t2.localbeijing…...

Redis中的淘汰策略
前言 本文主要说明在Redis面临key过期和内存不足的情况时,可以采用什么策略进行解决问题。 Redis中是如何应对过期数据的 正如我们知道的Redis是基于内存的、单线程的一个中间件,在面对过期数据的时候,Redis并不会去直接把它从内存中进行剔…...

MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射,让你在面试中脱颖而出!!
目录 一、引言 二、MyBatis动态SQL 2.1.if元素使用 2.2.foreach元素使用 三、MyBatis模糊查询 ①使用#{字段名} ②使用${字段名} ③使用concat{%,#{字段名},%} 总结 四、MyBatis结果映射 4.1.案例演示 4.1.1.resultType进行结果映射 4.1.2.resultMap进行结果映射 …...
C++ 写入txt文件内容并追加内容
咨询通义千问的“C 写入txt文件内容并追加内容”: 可以使用ofstream类来写入txt文件内容。若想追加内容,可以使用ios::app标志来创建输出流对象,然后在写入时将其设置为ios::app。以下是一个示例代码: #include <iostream>…...

Leetcode---359周赛
题目列表 2828. 判别首字母缩略词 2829. k-avoiding 数组的最小总和 2830. 销售利润最大化 2831. 找出最长等值子数组 一、判断首字母缩略词 纯模拟,代码如下 class Solution { public:bool isAcronym(vector<string>& words, string s) {string tmp…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...

【若依】框架项目部署笔记
参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作: 压缩包下载:http://download.redis.io/releases 1. 上传压缩包,并进入压缩包所在目录,解压到目标…...