今天抽空配置了一下分线解析的CDN,本来打算把又拍云也给用上,突然就想到了Cloudflare,在之前还可以使用partner的cname的方式解析到cloudflare,实现国内线路使用国内cdn,国外的请求全部走cloudflare。不过自从CloudFlare禁用了Partner的API之后几乎所有的CNAME解析至cloudflare的方法都失效了。从网上搜索了一下新的cname方式,居然被我找到了,原文的教程可以查看
Luminous博主写的文章:https://luotianyi.vc/6185.html

这个方法我亲测可用并且非常舒服,只需要在cf单独ns接入一个域名,然后将现在的域名cnanme到cf中的域名,之后在DNS层分境内境外解析即可。
现在的状态就是国内访问的话是腾讯云CDN,国外访问就直接走的cloudflare了,并且国内不会受到cf的DNS丢包影响,因为没有走cf的dns。

配置接入Cloudflare

本文的头图和这一步的内容都来自于Luminous博主的文章,并添加了一些细节。非常感谢Luminous博主,原文地址:https://luotianyi.vc/6185.html

首先订阅CloudFlare for SaaS

打开一个域名,选择【SSL/TLS】下的【自定义主机名】,点击【启用CloudFlare for SaaS】后根据指示绑定外币卡或者PayPal,订阅CloudFlare for SaaS功能。

CloudFlare for SaaS订阅本身是针对整个计费账户的,所以通过Partner接入的域名出现【请联系客户成功经理以启用适用于SaaS的SSL】时,只需要选择个通过官方NS激活的域名启用订阅后即可使用。这里猜测可能是Partner接入的商务权限交给了合作伙伴,方便下放优惠和服务那些,我们绕过去就行了。

激活页面中文翻译比较滞后,从英文的可以看到免费额度已经进行更新,可以放心使用。

添加cname域名

在DNS那里添加一个子域名,指向目标服务器,比如需要接入CDN的网站服务器IP,这里我设置的是cname.6ze.cn

设置源站

选择一个承载的域名zone点进去,依然是【SSL/TLS】下的【自定义主机名】,首先要设置附加上域名的源站。在这之前要在承载的域名zone中设置一个子域名作为源站的来源,比如origin.a.com,在Partner或者官方DNS设置好它的源站(注意是是在CF里添加,和正常添加网站的流程一样)这里已经在上一步创建好了cname域名,把cname.6ze.cn填入即可。


添加自定义主机名

后续的工作就很简单了,点击【添加自定义主机名】,输入你要添加的未在CF接入的子域名。建议直接选择TXT验证,因为除了证书还有另一条TXT记录要添加,一起加上去比较方便。

验证域名所有权

添加完成后,按要求解析证书和主机名两个TXT记录,解析生效后10分钟左右即可验证通过,到此这个SaaS域名就正确的添加到了你的zone中并接入了CF。


等待下方的证书状态显示有效,然后进行下一步

SaaS域名解析

添加进去的SaaS域名,CF并不会给你提供明确的CNAME供指向。如果是官方接入的可以直接CNAME到你刚刚设置的源站域名比如origin.a.com,通过Partner接入的直接解析到源域名对应的CNAME比如origin.a.com.cdn.cloudflare.net即可。其他的配置比如分线路解析、自选IP就可以按照自己的喜好去设置了,在此不过多赘述。此外,对于防火墙规则、页面规则,直接将添加进的域名输入其中即可圈定范围,完成对于其细则的设置。

这里我设置了分线的解析,在DNSPOD中添加blog记录,然后线路选择境外,类型为cname,值为cname.6ze.cn

等待生效即可。

补充

我本来想把国内的线路,联通解析到又拍云,但是我看了以下dnspod的解析线路优先级,境外的线路要比分运营商的优先级要低,那么我也就没有必要这样去设置了。

解析线路的优先级为:
自定义线路 > 单个搜索引擎 > 搜索引擎 > 分省运营商(省级电信/联通/移动/云厂商等)> 分省/州/邦线路 > 分大区运营商线路 > 分大区线路 > 分运营商线路(电信/联通/移动/云厂商等) > 境内线路 > 分国家线路 > 分大洲线路 > 境外线路 > 默认线路

另外,没有备案的域名是可以这样操作的,实测不会被机房拦截

如果觉得我的文章对你有用,请随意赞赏