cdn配置(超详细+图解+原理)

news2024/11/24 21:03:11

具体的详细配置在右侧目录翻到“三”,前面的一二是将原理
以腾讯云的cdn为例,其它家的大同小异

一、cdn作用和配置思路

(一)cdn作用

1.加速访问

cdn服务通常有多个节点缓存,用户可以就近获取,延迟较低

2.变相增加带宽

国内具有公网ip的带宽是很贵的,而现在的网站大多数占带宽的都是静态资源,如果把静态资源通过cdn加速,可以用很小的带宽支持较大的流量。

3.部分隐藏源站

通过cdn配置,直接隐藏了直接的服务器的ip,增加了获取原始ip的难度(注意只是增加难度,无法避免。过滤掉一些小白而已)。

(二)配置思路

1.cdn加速服务的端口

如果是web应用或api端口,通常是https的443端口

2.根据应用实际状况配置cdn

那些文件后缀是需要缓存的。
哪些目录下的文件是实时更新的,无需缓存。
哪些端口是调取数据的,无需缓存。
源数据放在自己的服务器还是对象存储或别的地方。

3.https证书

强烈建议使用

cdn加速对前后端分离的应用应该是加速最好的,如果是后端生成内容,前端接收就没那么好的效果了,不过现在应该都是前后端分离的

二、前置条件

(一)域名备案

国内所有域名需要备案,如果使用的服务商不是备案的服务商还要进行接入备案。
个人或公司都可以备案,个人备案不能经营。

(二)域名解析

域名解析到cdn提供的网址,相当于cdn做第一次路由。
注意:如果域名所在的服务商和cdn所在的服务商不是一家,通常需要dns添加记录证明是你的域名

三、具体详细配置(以腾讯云为例)

以下配置是对一个前后端分离的web应用进行的配置,全部使用https
腾讯云的基本配置有下面几块,根据选项卡一个个配置
在这里插入图片描述

(一)基础配置

1.基本信息

基本信息是在创建cdn时已经设置过的,根据实际情况填写。

2.源站信息

这里的源站如果用域名,不能使用加速的域名(会出现死循环)。
为了方便,直接写服务的ip+443端口即可。


如果有多个源站,也可以分配权重,进行负载均衡

(二)访问控制

1.防盗链配置

放盗链不能防止别人获取信息,只能阻止那些用你的链接显示别人网页的行为。
建议使用白名单模式,允许空referer访问
(如果不允许空referer访问,无法输入url地址访问,会直接返回403)
注意,如果你的应用需要调用外部的服务进行跳转,把这个外部服务的网址也加进来,否则无法跳转
在这里插入图片描述

2.IP黑白名单配置(默认无需配置)

有如下情况需要配置,包括但不限于:
(1) 受到指定ip的攻击,加入黑名单
(2) 该服务是内部的,只对某个区段ip适用

3.IP访问限频配置

推荐开启,根据应用类型配置,如果不知道设置qps多少,可以使用50。然后后台统计大多数人具体的访问量,来进行调整即可

4.鉴权配置(根据需要配置)

鉴权配置的意义在于,可以后端控制用户获取静态资源,即使用户知道文件位置,如果鉴权不通过,也无法从cdn获取。根据需要配置,后端需要跟上。
在这里插入图片描述

5.UA黑白名单配置

添加对指定请求头的控制,通常是君子协议,因为请求头可以改。

6.下行限速配置

根据你的应用实际情况配置,为了限制具体的某个文件用户获取的速度。
通常用于高流量的场景,可以不配置,等需要了再配置。

7.访问端口配置

保持默认,开启80和443
在这里插入图片描述

8.区域访问控制插件

建议开启,如果只面向国内用户,建议开启只允许国内ip访问
在这里插入图片描述

9.远程鉴权

需要自己搭建鉴权的服务器,有需要配置(需要后端支持),如果不熟悉,直接默认不开启。

(三)缓存配置

1.缓存键规则配置

建议比如html这种url后面需要后面加参数的进行忽略
参考设置如下
在这里插入图片描述

2.节点缓存过期配置

重点配置区域
(1) 首先把api的目录设定为不缓存
(2) html,css,js这种建议不要超过2小时
(3) php,jsp这种不缓存(因为是后端生成的)

3.浏览器缓存过期配置

保持默认即可,需要前端开发时去做,建议保持默认或者根据需要。

4.状态码缓存

保持默认404,如果需要返回别的状态,根据需要调整。

5.HTTP头部缓存配置

建议开启,方便开发和应用
在这里插入图片描述

6.访问URL重写配置

重写url可以在cdn配置,也可以在服务器入口处配置,根据需要配置。
我的做法通常是不在cdn配置,即这里是无规则的。

(四)回源配置

1.合并回源配置

建议开启

2.分片回源配置

通常不建议开启,容易出小问题

3.回源HTTP请求头配置

重点配置
强烈建议开启,增加X-Forward-Port请求头获取真实ip
原因是将ip写入请求头,就不用专门把ip一层层传递了,后端直接就可以从请求头获取。

4.回源跟随301/302配置

建议开启,简单说就是你的外链也进行缓存

5.回源超时配置

保持默认配置

6.回源URL重写配置

根据情况,一般情况默认即可。
这个配置同样可以在后端服务器配置,我的习惯是在后端服务器配置。
把除了必须暴露外部的目录之外的其它全部屏蔽并指向404(后端的结构很重要)

7.回源SNI配置

保持默认关闭
只有在一个ip绑定了多个域名时才需要配置

注:一个ip绑定多个域名要额外加入反向代理或路由才能实现

(五)https配置

https是重点配置区域,稍有不慎就会无法访问,建议一定要用https

1.HTTPS服务

重点配置
强烈建议开启,不建议使用http,建议全部https

2.HTTPS配置

重点配置
务必上传域名的证书(https证书),否则会提示中间人攻击,直接无法访问
注意:需要手动将https证书(ssl)的公钥和私钥内容复制到如下指定位置,自己生成的不行
在这里插入图片描述

在这里插入图片描述

3.HTTP 2.0配置

开启

4.强制跳转

建议开启,通常情况下,后端的服务器应该也增加跳转或者直接关闭http的访问(只允许https)、
http->https,302,不携带头部
(选择不携带头部,如果正常请求都是https,用http访问显然是为了试探)

5.HSTS配置

建议保持默认关闭

6.TLS版本配置

保持默认

7.OCSP装订配置

建议开启

8.QUIC

保持默认关闭,有需要也可以额外付费用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

得物App万米高空WiFi拦截记

0.前情摘要 在一次飞行途中,我司客户遭遇到了得物App在飞机上的WiFi网络访问异常的问题。这让我们意识到在特定场景下,用户可能面临无法使用得物App的困扰。经过SRE团队与无线团队、网络团队联合全力排查与优化,最终成功解决了这一问题&…

PAN(Pyramid Attention Network for semantic segmentation)paper解读

Pyramid Attention Network for Semantic Segmentation讲PAN用于语义分割,网络结构类似encoder-decode, u-shape。 背景 encoder-decoder结构, 在encoding到高维度特征的过程中,原始的纹理信息会遭遇空间分辨率损失,例如FCN。 P…

Spring Boot进阶(39):SpringBoot之Jackson配置全局时间日期格式 | 超级详细,建议收藏

1. 前言🔥 不知道小伙伴对于日期字段,在项目中都是如何处理的,是单独给每个字段都自定义日期格式还是做全局格式设置?这个我之前啊,是对日期都是有做单独配置,给每个Entity带有日期字段的都配JsonFormat注解…

SolVES 模型与多技术融合【QGIS、PostgreSQL、ARCGIS、MAXENT、R】实现生态系统服务功能社会价值评估及拓展案例分析

生态系统服务是人类从自然界中获得的直接或间接惠益,可分为供给服务、文化服务、调节服务和支持服务4类,对提升人类福祉具有重大意义,且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目(Millennium Ecosystem Asse…

编译器设计(十四)——寄存器分配

文章目录 一、简介二、背景问题2.1 内存与寄存器2.2 分配与指派2.3 寄存器类别 三、局部寄存器分配和指派3.1 自顶向下的局部寄存器分配3.2 自底向上的局部寄存器分配3.3 超越单个程序块 四、全局寄存器分配和指派4.1 了解图着色4.2 找到全局活跃范围4.3 估算全局逐出代价4.4 冲…

前端列表页+element-puls实现列表数据弹窗功能

效果图: 这是一个修改的弹窗,我们要实现的功能是,在列表,点击修改按钮时,将数据带入到弹窗里面,点击保存时关闭弹窗。 1,点击修改展开弹窗 使用 eldialog组件,v-model绑定的值为tru…

fluent-operator在kubesphere中的实战详解

前言 最近收到一个小任务:熟悉kubesphere实现一个日志平台。基于这样的机会,将最近所整理的笔记进行汇总。 kubesphere开启日志收集 根据官网介绍只需要将 enabled 的 false 改为 true即可 执行kubectl get pod -n kubesphere-logging-system命令来检查…

QT课程 QT介绍

QT介绍(了解) Qt是一个基于C开发语言的图形用户界面开发(GUI)框架。界面开发知识Qt的一部分,实际上Qt也可以支持很多其他的功能,比如:网络编程、文件IO、图形图像处理等。 Qt在嵌入式领域最大…

Vue之插值表达式,v-bind(单向绑定),v-model(双向绑定)

文章目录 前言一、插值表达式二、v-bind指令三、v-model指令总结 前言 插值表达式{{…}} v-bind v-model 一、插值表达式 插值表达式支持匿名变量、三目运算符、四则运算符、比较运算符、数值类型的一些内置方法&#xff0c;还有数组的索引取值方法和对象属性。 <!DOCTYPE…

安全工具 | CMSeeK [指纹识别]

0x00 免责声明 本文仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担…

2023年北京.NET线下技术沙龙圆满落幕!

5月20日&#xff0c;MASA技术团队在北京举办的“2023年北京.NET线下技术沙龙”圆满落幕&#xff01;整个活动气氛热烈&#xff0c;嘉宾们的分享内容丰富多彩&#xff0c;现场观众都受益匪浅。我们期待着更多这样的技术交流活动&#xff0c;让.NET社区不断发展和进步。 本次活动…

材料电磁参数综合测试解决方案 材料吸波、屏蔽性能测试系统 (10MHz~500GHz)

材料吸波、屏蔽性能测试系统测试频率范围可达10MHz&#xff5e;500GHz&#xff0c;可实现材料反射率、屏蔽性能特性参数测试。系统由矢量网络分析仪、测试夹具、系统软件等组成&#xff0c;根据用户不同频率、材料性能测试需求&#xff0c;可选用弓形框法、便携式反射率测试法进…

如何快速实现接口自动化测试,常规接口断言封装实践

目录 前言&#xff1a; 一、框架设计思路 1. 封装请求方法 2. 断言封装 3. 接口封装 4. 接口统一管理 二、框架使用 三、总结 前言&#xff1a; 在当今互联网行业中&#xff0c;接口自动化测试已经成为了非常重要的测试手段之一。而在这个过程中&#xff0c;接口自动化…

3年外包裸辞,面试阿里、字节全都一面挂,哭死.....

测试员可以先在外包积累经验&#xff0c;以后去大厂就很容易&#xff0c;基本不会被卡&#xff0c;事实果真如此吗&#xff1f;但是在我身上却是给了我很大一巴掌... 所谓今年今天履历只是不卡简历而已&#xff0c;如果面试答得稀烂&#xff0c;人家根本不会要你。况且要不是大…

性能优化 面试

性能分析 1.页面加载性能&#xff08;加载时间&#xff1b;用户体验&#xff09; 2.动画与操作性能&#xff08;是否流畅无卡顿&#xff09; 3.内存占用&#xff08;内存占用过大&#xff0c;浏览器崩掉等&#xff09; 4.电量消耗&#xff08;游戏方面&#xff0c;暂不考虑&…

【SpringBoot】九:Web服务---文件上传

文章目录 1.MultipartFile API2.上传文件 1.MultipartFile API 在 Controller 的方法加入形参RequestParam MultipartFile。 MultipartFile 表示上传的文件&#xff0c;提供了方便的方法&#xff0c;保存文件到磁盘。 方法作用getName()参数名称&#xff08;upfile&#xff0…

pymongo给文档里的某个列表添加元素并去重以及操作符的表格

文章目录 问题描述知识点收集mongo的操作符:匹配符&#xff1a;选择符&#xff1a;函数操作&#xff1a;更新符&#xff1a;聚集符&#xff1a;字段操作符&#xff1a; 问题描述 给parts列表新增字典 新增前: 新增后: 代码: mongo_client get_mongo_client()col mongo_cli…

【ZYNQ】ZYNQ7000 UART 控制器及驱动示例

简介 UART 控制器介绍 UART 控制器是一个全双工异步收发控制器&#xff0c;ZYNQ 内部包含两个 UART 控制器&#xff0c;UART0 和 UART1。每一个 UART 控制器支持可编程的波特率发生器、64 字节的接收 FIFO 和发送 FIFO、产生中断、RXD 和 TXD 信号的环回模式设置以及可配置的…

第一个SpringBoot程序

如何创建一个SpringBoot项目&#xff0c;两种方式&#xff0c;官网或IDEA 官方提供了一个快速生成的网站&#xff0c;IDE集成了这个网站 spring官网 Spring | Homehttps://spring.io/进入spring官网&#xff0c;点击projects&#xff0c;点击SpringBoot&#xff0c;进到如下…

前端设计必须知道!7个超实用的工具推荐!

前端网络开发作为一个高薪行业&#xff0c;近年来的繁荣是业内人士所看到的。网络开发工具也在上升&#xff0c;市场上出现了越来越多的前端页面设计工具。但随着前端页面设计工具数量的增加&#xff0c;找到合适的前端页面设计工具来完成工作有时会让开发团队感到困惑。 本文…