具体的详细配置在右侧目录翻到“三”,前面的一二是将原理
以腾讯云的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
保持默认关闭,有需要也可以额外付费用