概述
这段时间使用到了一些云资源,比如cdn和对象存储功能。
1.对象存储主要解决网站图片资源的放置和管理,其实就是图床功能。
2.cdn 当然是加速网站访问速度,多人,多地域访问的请求响应问题,缓解了服务器请求频次和流量等问题。
以上解释是我个人的理解,具体还请自行搜索了解,我这里只谈我使用中遇到的问题。
我使用cdn的时候,网站的后台登录来时不能传递给前台,也算是折腾了很久。才总算解决,特此记录一下,同时供参考:
开始设置
(一)基础配置
1.基本信息
基本信息是在创建cdn时,根据实际情况填写。
2.源站信息
源站的意识是如果缓存不存在,去哪里“要数据”
这里的源站不能使用加速的域名(会出现死循环)。
为了方便,直接写服务的ip+443端口即可,或者是一个域名,这个域名指向源服务器所在ip。
(二)访问控制
这一项,我的实际设置基本都没内容,只有IP访问限频配置设置了:130,这个看自己需要.但下面还是顺便解释一下意义,便于理解设置。
1.防盗链配置
放盗链不能防止别人获取信息,只能阻止那些用你的资源显示别人网页的行为。
(常见的有链接盗图,图片流量从你这走,但是是别人的网页)
建议使用白名单模式,允许空referer访问
(如果不允许空referer访问,无法输入url地址访问,会直接返回403)
注意,如果你的应用需要调用外部的服务进行跳转,把这个外部服务的网址也加进来,否则无法跳转。
2.IP黑白名单配置(默认无需配置)
有如下情况需要配置,包括但不限于:
(1) 受到指定ip的攻击,加入黑名单
(2) 只允许白名单内的ip使用
3.IP访问限频配置
防止一些网络攻击,推荐开启,根据应用类型配置,如果不知道设置qps多少,可以使用100。然后后台统计大多数人具体的访问量,来进行调整即可
如果设置过小,影响正常使用,网页加载文件不能全部载入,会报513的错误,如果过大,这个值设置就没有意义了。
4.鉴权配置
鉴权配置的意义在于,可以后端控制用户获取静态资源,即使用户知道文件位置,如果鉴权不通过,也无法从cdn获取。根据需要配置。有多种鉴权方式,一种是用算法时间鉴权,类似jwt,一种是转发到你的服务器进行验证(至于怎么验证则是后端的设计了)
5.UA黑白名单配置
添加对指定请求头的控制,通常是君子协议,因为请求头可以改。
(但是大多数普通用户不会改的,所以还是过滤小白的操作)
6.下行限速配置
根据你的应用实际情况配置,为了限制具体的某个文件用户获取的速度。
通常用于高流量的场景,可以不配置,等需要了再配置。
7.访问端口配置
保持默认,开启80和443
8.区域访问控制插件
建议开启,如果只面向国内用户,建议开启只允许国内ip访问
9.远程鉴权
需要自己搭建鉴权的服务器,有需要配置(需要后端开发支持),如果不熟悉,直接默认不开启。
(三)缓存配置
重点内容
1.缓存键规则配置
2.节点缓存过期配置
重点配置区域
(1) 全部文件,不缓存:(这个非常重要,很可能会导致后台正常登陆,但前台状态更新不及时的情况,这个问题困扰我很久,最终还是腾讯云的客服帮忙排查出的)
(2) /usr/uploads,缓存10天。(这个文件夹大多是图片或附件,所以这里选择了,下面的文件后缀名,我就没有再增加图片格式了)
(3) svg;woff;ttf;woff2;css;js,缓存2小时,根据自己情况调整。
给出我定义的内容,便于你懒得打字输入:
/usr/uploads
svg;woff;ttf;woff2;css;js
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上传大文件,建议分段后上传。
参考文章: cdn配置(超详细+图解+原理)