万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

刚刚转载了一篇文章介绍 nginx + ws + tls + cdn=V2,其中如何通过cname方式指向CloudFlare 的文章转到了张戈的博客链接,不过考虑到一些因素,吐槽君决定还是整篇转来万事屋,方便自己学习借鉴之用~

同样的,文章用来自己学习的,评论才可见哦~

我博客之前的文章提到了因更换了个性域名 zhang.ge 导致无法备案,因此服务器也不得不迁移到国外,这里也顺便分享一下,目前博客使用AWS的lightsail,坐标东京,配置如图:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图1:我选择的是套餐三,另外挂了一个20GB云数据盘

大概10刀多一点每月,换算软妹币80左右,比国内的绝大部分香港或境外同等配置云服务器划算。如果选择前2个套餐会更便宜。

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图2:近几个月的费用报告

不过,真正用过国外服务器的朋友都知道,受『功夫王』的影响,国外服务器一到傍晚就会抽搐不已。于是考虑套一层CDN来缓解下,而且也可能帮忙扛一扛恶意攻击什么的。

CloudFlare(后文简称CF)是什么,怎么设置我这里就不赘述了,大家可以网上搜下CF的详细使用教程,有非常多的网友、博主分享了图文并茂的教程。下面主要是记录、分享一下张戈博客在使用CF中发现的一些经验或技巧,希望给在用或将要用CF的同学提供一些参考。

一、CNAME接入方式

了解过CF的同学可能知道了,CF免费套餐只能通过NS方式接入。这个方式用起来不够灵活、生效很慢,而且最重要的问题是没法在解析的时候手工解析到CF节点IP地址。

要实现CF的CNAME接入方式也很简单,这里使用第三方的CF管理平台即可,比如张戈博客使用的是:BNXB 。这类平台通过CF的API来操作域名,所以他们把CF的所有功能选项都本地化、中文化了,极大的降低了国内用户的使用门槛!当然,最吸引我的还是可以使用CNAME接入方式。

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!
图3:BNXB设置

接入很简单,注册平台账号并参考提示绑定CF的API账号,即可在平台进行接入操作。这里可以直接选择CNAME接入方式:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!
图4:CNAME接入

如果觉得描述理解费劲,不知道怎么填写,其实也可以先选择DNS接入方式,然后在平台可以再次转换为CNAME方式。这个平台可以随时在CNAME和DNS接入方式之间互相转换:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图5:接入方式转换

接入完成后,我们可以参考网络上前人分享的一些经验,优化一下配置(都是中文的,这里我就不一一介绍了),平台会给出一个可用的CNAME记录:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图6:解析记录界面,CNAME记录

这时候,我们就可以在原来的域名管理(比如dnspod、万网等)那里,将之前的@或WWW记录解析到这个cname,就完成了CF的接入了。

二、指定节点解析

如上文图6最后所示,接入CF之后,CF会给域名分配一个入口IP,一般是美西洛杉矶那边的。这个IP其实是采用的AnyCast技术,当用户访问到时候,会就近分配一个真实的节点IP,以加快访问速度。所以,通过ping工具去探测出来的IP都只是AnyCast入口IP,并不能展示真实的节点IP地址是多少。

不过,要查看真实节点IP的方法也很简单,CF每一个节点都有一个trace接口,访问方式为:http://{节点IP/域名}/cdn-cgi/trace。比如要查看张戈博客的真实节点地址,则访问 https://zhang.ge/cdn-cgi/trace

通过实测发现,目前国内用户访问默认还是会走美西节点,只有移动和教育网会走香港节点。因此国内用CF的效果仍然不够乐观。如此一来,就会有同学奇思妙想了,既然能找到真实节点,那是不是我可以固定解析到一些速度快的节点呢?比如香港节点。答案是肯定的!!

有了上面CNAME接入的前提条件,我们就可以在域名解析那里任意解析到节点IP了。反之,使用NS方式接入就不能这么任性了。

CF的具体节点IP这里就不公布了,感兴趣的自己去谷歌、百度搜下看看。

这样一来,电信和联通2个大户,本来是走美西慢出翔,现在就可以走两个相对高速的节点了,速度得到极大提升!而默认线路使用CF默认分配的AnyCast入口IP,一是移动运营商用户可以走香港线路,二是为了兜底。说到兜底,这里不得不再分享一个dnspod的使用技巧——D监控:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图8:D监控自动切换解析

如图所示,dnspod的D监控功能,可以探测站点是否可用,若不可用可以自动切换到可用的IP。所以在图7,我给电信和联通都设置了2个IP(免费套餐最多2个)。也就是说,当D监控发现手工指定的CF节点宕机,则可以自动切换到另外2个IP(包括默认的AnyCast IP),也就又多了一层保障:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

三、强制缓存配置

当我接入CF之后,我发现虽然我在cache等配置里面设置了缓存,实际上页面并没有缓存到CDN节点。最终,通过官网的帮助文档,发现CF默认并不会缓存html页面,而需要设置自定义的Page Rules,这个和百度云加速那个自定义规则其实一模一样!所以说,百度云加速其实就是『借鉴』CF来设计的。

既然一模一样,因此可以参考我之前分享的百度云加速自定义规则设置来设置CF的Page Rules了,如图:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图10:page rules设置

还是和百度云加速一样(或者说百度云加速和CF一样),免费套餐只能设置3条规则,因此不愿意花钱的我们也就只能如图设置了:除了后台和评论分页不缓存,其他一律缓存。如图所示,其中还有个最关键的地方,Edge Cache TTL这个选项必须要设置一下,否则依然不会缓存的哦!

虽然有些粗放,但是对于个人博客是可以接受的,除非有什么特殊页面也要求不缓存时,可能无法满足。当然,如果你确实需要更多规则,也可以花5刀/月额外购买5条:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图11:付费购买Page Rules条目

另外,我从CF帮助文档看到,Page Rules其实是可以根据cookies来配置页面规则的,当时我没找到,应该是收费版本才有。就是不知道5刀购买的5条规则是否可用通过cookie实现更加灵活点配置。描述如下:

How do you specify cookie names for Bypass Cache Cookie or Cache on Cookie?
Note that Bypass Cache on Cookie is available only on Business and Enterprise plans & Cache on Cookie is Enterprise only.
You can specify multiple cookie names by using the OR “|” operator. For example, to match cookie1cookie2, or cookie3, you would write: cookie1|cookie2|cookie3. You can also use the wildcard “.*” operator, i.e. cookie1.*.

如果可以通过cookie来配置,那就非常强大了,比如官网给出的WordPress专用配置:

万事屋转载一篇技术贴:如何将域名使用CNAME方式指向CloudFlare 并实现CDN加速!

图12:CF官方分享的WordPress专用html缓存页面配置

以上!

本文转自张戈博客:阅读原文

声明:本站文章,有些原创,有些转载,如发现侵权侵请联系删除。本站所有原创帖均可复制、搬运,开网站就是为了大家一起乐乐,不在乎版权。对了,本站小水管,垃圾服务器,请不要采集,吐槽君纯属用爱发电,经不起折腾。

给TA打赏
共{{data.count}}人
人已打赏
技术宅

万事屋转载一篇技术贴:nginx + ws + tls + cdn=V2

2020-7-8 10:20:03

技术宅

苹果用行动告诉你,独显不一定具备更好的性能

2020-7-9 14:59:28

16 条回复 A文章作者 M管理员
  1. 吐吐吐吐吐

    看看看

  2. ᨐ大舅哦

    学习学习

  3. 啥几点开始

    学习学习

  4. 言午

    学习学习

  5. HSLDG

    看看看看

  6. GTR

    看一看,学习下

  7. 爱影网

    66666

  8. ninja

    66666

  9. sb

    66666666666

  10. laobubu

    6666

  11. 修远Q

    6666

  12. 大河向东流

    6666666666666

  13. Edward

    6666

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索