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

您所在的位置:网站首页 cdn关键技术有哪些 cdn配置(超详细+图解+原理)

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

2024-07-15 19:27| 来源: 网络整理| 查看: 265

具体的详细配置在右侧目录翻到“三”,前面的一二是将原理 以腾讯云的cdn为例,其它家的大同小异 使用cdn时需要实时关注你的业务和cdn产生的费用!

一、cdn作用和配置思路 (一)cdn作用 1.加速访问

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

2.变相增加带宽

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

3.部分隐藏源站

通过cdn配置,直接隐藏了直接的服务器的ip,增加了获取原始ip的难度(注意只是增加源站ip的获取难度,无法避免)。

(二)配置思路 1.cdn加速服务的端口

如果是web应用或api端口,通常是https的443端口,如果你是用http的,就是80端口(不建议用http),当然也可以是其他端口,根据情况加速。

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

需要注意一下的几点: 1.那些文件后缀是需要缓存的。 2.哪些目录下的文件是实时更新的,无需缓存。 3.哪些端口是api接口实时u后去的,无需缓存。 4.源数据放在自己的服务器还是对象存储或别的地方。 5.是否有必要设置备用源站线路。

3.https证书

强烈建议使用,如果不适用请调整对应端口。

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

二、前置条件 (一)域名备案(工信部+公安)

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

(二)域名解析

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

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

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

(一)基础配置 1.基本信息

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

2.源站信息

源站的意识是如果缓存不存在,去哪里“要数据” 这里的源站不能使用加速的域名(会出现死循环)。 为了方便,直接写服务的ip+443端口即可,或者再申请一个域名,这个域名指向源服务器所在ip。

如果有多个源站,也可以分配权重,进行负载均衡。比如1台云服务器10M带宽,另外一台5M带宽,可以分配2:1的权重。

(二)访问控制 1.防盗链配置

放盗链不能防止别人获取信息,只能阻止那些用你的资源显示别人网页的行为。 (常见的有链接盗图,图片流量从你这走,但是是别人的网页) 建议使用白名单模式,允许空referer访问 (如果不允许空referer访问,无法输入url地址访问,会直接返回403) 注意,如果你的应用需要调用外部的服务进行跳转,把这个外部服务的网址也加进来,否则无法跳转 我这里有*.qq.com,意味着所有qq.com域名下的都允许(无论二级还是三级域名),比如你要用qq或微信进行登录你的网站应用。 在这里插入图片描述

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

有如下情况需要配置,包括但不限于: (1) 受到指定ip的攻击,加入黑名单 (2) 只允许白名单内的ip使用

3.IP访问限频配置

推荐开启,根据应用类型配置,如果不知道设置qps多少,可以使用50。然后后台统计大多数人具体的访问量,来进行调整即可 如果设置过小,影响正常使用,如果过大,这个值设置就没有意义了

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

鉴权配置的意义在于,可以后端控制用户获取静态资源,即使用户知道文件位置,如果鉴权不通过,也无法从cdn获取。根据需要配置。有多种鉴权方式,一种是用算法时间鉴权,类似jwt,一种是转发到你的服务器进行验证(至于怎么验证则是后端的设计了) 在这里插入图片描述

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

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

(六)高级配置 1.自定义错误页面配置

如果请求不到资源返回的页面,可以不配置,或者指向404

2.用量封顶配置(重要)

如果网站不是非常重要,又怕被攻击导致高额账单,这个是保底。 可以设定一段时间内最大用量,同时到达时进行提前预警。

3.SEO配置

默认开启即可

4.HTTP响应头配置

通常不需要配置。 使得每个通过cdn的都会返回给客户端的http响应头的内容

5.智能压缩

开启即可。 在这里插入图片描述

6.离线缓存配置

开启即可。 开启后如果源站故障,这个也能显示,不过这个实际作用不是很大,除非是内容型网站,很少和后端交互。

7.POST请求大小配置

默认为1M(nginx的默认也是1M) 建议不要动,请求通常不会超过1M,如果是post上传大文件,建议分段后上传。

四、其它问题 (一)缓存刷新相关建议 1.开发阶段就不要用cdn了 2.如果大面积修改,建议手动全量刷新 3.如果无法直接刷新cdn,修改静态文件名,这样在cdn看来就是新的文件了,会重新进行缓存


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3