CDN踩坑的那些事

一、前言

大家好,我是尝试中成长的站长,前段时间,群友的cdn被刷爆了,这就引起了我的恐慌,我大概接入了3个域名和一个cos,要刷的话,可能会倾家荡产,国内的cdn比较便宜但是没有防护,国外的就比较贵,节点少,开了等于没开,但是他们是有防护的,盗刷应该不会这么严重,腾讯云其实也有一个类似的功能产品,scdn,有个问题,太贵啦,当时年少不懂事,测试给我花了30块,应该可以想象价格的高昂了吧。这次针对cdn的某些设置进行了一点点的优化,至少在你的网站被cc或者ddos时,自动关闭cdn,避免高昂的费用。

二、基础配置

一般大部分人都会选择根域名直接接入,然而这个在很多产商是不允许的(goddady,Google domain等等),涉及网络制定的规范问题(搜索dns解析cname为何不能直接接入根域名),不过也提供了一些替代性方案,dnspod是支持直接接入的,推测可能是采用替代性方案实现的,如果不支持,最简单的方案就是接入www子域名。

cdn配置一句话描述就是,添加域名产生cname记录,dns上面添加一条cdn cname记录到该域名上,申请ssl证书,添加到cdn上,等待cdn生效,cdn配置完毕。

  • 加速区域:不说了,如果你认为你的主要客户是国外可以选择国外结点,不过这会导致一个问题,你需要清楚主要分布的区域并购买流量包,不然按需流量计费是比较贵的,cdn会帮你选择最佳结点,若你购买的套餐没有包括这个结点,你需要额外付费。所以保险起见还是选择国内比较好一点。
  • 加速域名:国内的厂商必须备案才行,所以没有备案的朋友看到这里就可以结束了。
  • cname:自动创建的,作为cname记录值
  • 加速类型:应该是对不同类型的文件进行了优化,一般情况下选择网页小文件就ok

  • ipv6访问:根据实际需求开启或者关闭,不过值得一提的就是,如果开启的话,就不能添加区域黑名单或者白名单了(根据ipv4地址进行限制)

接下来配置一下源站

一般情况下就是配置自有源即可,回源协议我是习惯选择https(和源站有关),这里补充一点,我们访问网站本质上就是协议+IP地址+端口访问的,请务必确保源站可以通过这种方式访问,否则cdn也是无法访问的。

三、访问控制

稍微配置一下可以减少一些cc和ddos的攻击,主要是对ip和流量进行控制

  • 防盗链设置

    加白比较容易,黑名单可能太多了,我自己是加了一些例如百度和必应谷歌等搜索引擎的域名进去,还有一些自己的友链啥的。

  • ip黑白名单

    这个一般是加黑,比如某台攻击你的机器,如果只是自己用的话也可以加白。

  • ip访问qps

    即控制每秒的请求数,一般情况下是不会有啥问题的,当然你的网站如果很大的话这个访问阈值就要调整了

  • 高级配置

    这个配置比较复杂暂时没有尝试过,总之就是更安全了。

  • 下行限速配置

    即获取资源的速度,一般情况下只有css,js,html等文件,几百k就行,也可以根据实际情况更改,比如站点有比较多的音乐资源啥的,可以一定程度上减少ddos时的损失。

  • 境内访问端口

    一般情况下80和443就行了,如果时采用8080端口访问可以开启(注意这里为cdn服务器上的,自己服务器的配置无效,看上去只能支持这三种端口,有兴趣的朋友可以试试其他端口)

  • 区域访问控制

    仅能控制ipv4的ip,设置区域白名单和黑名单达到控制的效果。(目前免费,不排除后面收费)

  • 远程鉴权

    即使用自己的服务器完成鉴权操作,需要自己写代码(比较复杂,企业级的网站可能有这个需求)。

四、缓存配置

  • 缓存键规则配置(默认就行,跳过)
  • 节点缓存过期配置

    这个根据个人喜好配置,同时也决定着回源的频率,还有你的更新频率决定,我一般是一周更新一次,也可以写完强制更新

    在域名管理那边找到强制更新的选项,需要五分钟左右进行同步(有点慢,其实是结点比较多可以理解)。

  • 浏览器缓存

    浏览器一般也会进行缓存的,这里配置的图片缓存策略,比如正在看这篇文章的朋友多次打开浏览器,不需要重复加载多次内容。

  • 状态码缓存(不知道啥作用,跳过)
  • http头部缓存(开启就完事了)
  • 访问URL重写

    类似伪静态或者起到防盗的作用,太麻烦了,跳过。

  • 合并回源

    类似主从从模式的回源,降低源站的压力

  • 分片回源(一般是大文件才需要开启的,我们这里跳过)
  • 回源HTTP请求头配置(默认就行)
  • 回源跟随301/302配置(我这里是开启,提高用户的体验,减少一次重定向)
  • 回源超时和url重写

    目前站点还是挺快的,根据自己的需求配置

  • 回源SNI配置

    我的是小站绑定了好多个域名,所以需要开启这个设置,不会导致串站的情况。

五、HTTPS配置

  • https服务(目前收费,不过是每个月300w次以上收费,一般个人博客达不到这个量)
  • https配置(这里配置证书)
  • HTTP 2.0配置(开启就行)
  • 强制跳转

    这个务必要开启,有个小锁会安心一点

  • HSTS配置和TLS版本配置

    我的配置是这个,开就完事了,不懂可以搜索一下

  • OCSP装订配置(开启就完事了)

六、高级配置(最重点来了)

看之前务必看完腾讯云的这篇简介预防高额账单

  • 自定义错误页面配置(可以不配置,只是会影响体验,建议配置成自己独有的404界面或者首页)
  • 用量封顶配置

    其实这个配置挺大了,平时一个月只有2g的用量,但还是以防万一,即时关闭cdn和加ip黑名单。

  • SEO配置(开就完事了)
  • HTTP响应头配置(没看懂,默认就行)
  • 智能压缩

    可以参考如下配置,主要是针对静态文件的配置

  • 离线缓存

    主站服务器宕机时保证,cdn还可以用,不过对于动态网站而言这个比较鸡肋,数据都是存数据库的,数据库一般在主站,所以主站服务器宕机,这个网站基本上也是不可用,可开可不开。(曾经开过,然后被缓存心态搞崩了,所以关了)

  • POST请求大小配置

    即上传数据之类的请求,可以根据自己的网站进行调整。

七、结语

之前在非主流论坛里面出现的各种盗刷,好多坛友都对国内cdn失去了信心,其实无论是从哪种角度,国内的cdn都是非常不错的,相信会越来越好的。