cdn配置(超详细+图解+原理) |
您所在的位置:网站首页 › cdn关键技术有哪些 › cdn配置(超详细+图解+原理) |
具体的详细配置在右侧目录翻到“三”,前面的一二是将原理 以腾讯云的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 腾讯云的基本配置有下面几块,根据选项卡一个个配置 基本信息是在创建cdn时已经设置过的,根据实际情况填写。 2.源站信息源站的意识是如果缓存不存在,去哪里“要数据” 这里的源站不能使用加速的域名(会出现死循环)。 为了方便,直接写服务的ip+443端口即可,或者再申请一个域名,这个域名指向源服务器所在ip。 如果有多个源站,也可以分配权重,进行负载均衡。比如1台云服务器10M带宽,另外一台5M带宽,可以分配2:1的权重。 (二)访问控制 1.防盗链配置放盗链不能防止别人获取信息,只能阻止那些用你的资源显示别人网页的行为。 (常见的有链接盗图,图片流量从你这走,但是是别人的网页) 建议使用白名单模式,允许空referer访问 (如果不允许空referer访问,无法输入url地址访问,会直接返回403) 注意,如果你的应用需要调用外部的服务进行跳转,把这个外部服务的网址也加进来,否则无法跳转 我这里有*.qq.com,意味着所有qq.com域名下的都允许(无论二级还是三级域名),比如你要用qq或微信进行登录你的网站应用。 有如下情况需要配置,包括但不限于: (1) 受到指定ip的攻击,加入黑名单 (2) 只允许白名单内的ip使用 3.IP访问限频配置推荐开启,根据应用类型配置,如果不知道设置qps多少,可以使用50。然后后台统计大多数人具体的访问量,来进行调整即可 如果设置过小,影响正常使用,如果过大,这个值设置就没有意义了 4.鉴权配置(根据需要配置)鉴权配置的意义在于,可以后端控制用户获取静态资源,即使用户知道文件位置,如果鉴权不通过,也无法从cdn获取。根据需要配置。有多种鉴权方式,一种是用算法时间鉴权,类似jwt,一种是转发到你的服务器进行验证(至于怎么验证则是后端的设计了) 添加对指定请求头的控制,通常是君子协议,因为请求头可以改。 (但是大多数普通用户不会改的,所以还是过滤小白的操作) 6.下行限速配置根据你的应用实际情况配置,为了限制具体的某个文件用户获取的速度。 通常用于高流量的场景,可以不配置,等需要了再配置。 7.访问端口配置保持默认,开启80和443 建议开启,如果只面向国内用户,建议开启只允许国内ip访问 需要自己搭建鉴权的服务器,有需要配置(需要后端开发支持),如果不熟悉,直接默认不开启。 (三)缓存配置 1.缓存键规则配置建议比如html这种url后面需要后面加参数的进行忽略 参考设置如下 重点配置区域 (1) 首先把api的目录设定为不缓存 (2) html,css,js这种建议不要超过2小时 (3) php,jsp这种不缓存(因为是后端生成的) 3.浏览器缓存过期配置保持默认即可,需要前端开发时去做,建议保持默认或者根据需要。 4.状态码缓存保持默认404,如果需要返回别的状态,根据需要调整。 5.HTTP头部缓存配置建议开启,方便开发和应用 重写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)的公钥和私钥内容复制到如下指定位置,自己生成的不行 开启 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.智能压缩开启即可。 开启即可。 开启后如果源站故障,这个也能显示,不过这个实际作用不是很大,除非是内容型网站,很少和后端交互。 7.POST请求大小配置默认为1M(nginx的默认也是1M) 建议不要动,请求通常不会超过1M,如果是post上传大文件,建议分段后上传。 四、其它问题 (一)缓存刷新相关建议 1.开发阶段就不要用cdn了 2.如果大面积修改,建议手动全量刷新 3.如果无法直接刷新cdn,修改静态文件名,这样在cdn看来就是新的文件了,会重新进行缓存 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |