实战:自动分运营商优选ip线路的Cloudflare网站CDN加速的优化打造

上一个视频我们有说到,Cloudflare默认的网站CDN加速并不是很好用,默认用户的访问过程是下图这样的

Cloudflare默认访问过程

现在我们需要把它改造一下,变成下面这样

改造过后访问过程

通过改造,我们将实现智能自动匹配三大运营商,并选择表现最佳的节点IP,确保每个用户都能走优选的线路,从而提升访问速度。

如果你也希望提升你网站的访问速度,让用户体验更流畅,那么这个方案值得尝试。

接下来,跟随我一步步实现这个优化,让我们开始实战吧!

一:前期准备

需要用到的东西我以我这次操作为例,列在下面:

cloudflare账号一个

github账号一个(用来部署优选ip程序的)

dnspod账号(你也可以用阿云或华为云的账号)

主力域名:htizi.cc

回源域名:qfafa.com 

信用卡或paypal账号(支持国内paypal,用来开通cloudflare的saas业务,带回源功能)

二、回源域名的操作

2.1、登陆cloudflare,在cloudflare添加回源域名的网站。

2.2、域名注册商那里,把ns改为cloudflare提供的ns服务器。

2.3、在CF里DNS里,对回源域名添加一个A记录解析,解析名称任意,我用的是“hy”,解析值是自己服务器的ip,记得把小黄云开户。

解析回源子域名

这一步得到了回源域名的子域名:hy.qfafa.com,回源域名的其他子域名还是可以用作其他事的。


2.4、开通saas业力,saas业务是让一个没绑定到CF的域名,也可以完全享受跟回源域名一样的服务,包括安全、加速、ssl证书等功能。以前saas是收费的,现在CF为每个账号免费提供100个域名的额度,但开通时需要绑定信用卡或paypal账号(支持国内的pp),我用的就是国内paypal,开通成功后可以在pp解除自动扣款。

开通saas

绑定国内paypal

绑定国内pp时,可能需要开一下科学上网。

2.5、添加回退源

注:一个域名只能添加一个回退源,也就是只能绑定一台服务器的ip

添加回退源

添加后等它生效,变成绿色的“有效”,再进行下一步,1~2分钟时间

2.6、添加自定义主机

打开自定义主机页面


打开后按下图添加主力域名的子域名

添加自定义主机

添加完成后要等一下让它变成待验证状态:

待验证状态


展开是这样的:

需要添加的两个TXT解析

  • 这里我们需要验证我们域名的所有权和证书。

  • 里面要求添加两个TXT解析,这是要到主力域名去操作的。

  • 我还继续添加了一个主力域名的子域名,一共两个,带www和不带的,最后我的是这样的:

需要验证的两个主力域名的子域名

三、主力域名的操作

3.1、在dnspod添加主力域名

3.2、域名注册商那里,把ns改为dnspod提供的ns服务器。

3.3、默认线路解析的添加

什么是默认线路,也就是那些不是联通、移动和电信的用户访问我们网站时走的线路,这些用户一般是国外或港台区的人,它们不用走优选线路,直接走默认线路。

添加cname记录到 回源子域名(即hy.htizi.com),需要多少个主力域名的子域名就添加多少个,我添加了两个,一个www和什么都不带的,如图

主力域名的子域名cname解析默认线路

当然,默认线路,你也可以用A记录直接到你的服务器IP,这样可是不能隐藏ip地址的,但是你只要喜欢就行。

3.4、TXT记录添加

把2.6需要验证的两个TXT记录添加进来,我上面添加了两个主力域名的子域名,所以我这里一共要添加4个TXT记录。

注意:你的TXT验证名称应该不包含主力域名,

例如直接复制下来是 _acme-challenge.htizi.cc 你应该删去htizi.cc 即最后为 _acme-challenge

如果直接复制下来是 _acme-challenge.www.htizi.cc 删去htizi.cc 即为 _acme-challenge.www

还是不懂就直接看我最后添加的结果吧:

我最后添加的结果

3.5 自定义主机名的DCV委派

添加这一步主要用途是自动续约SSL证书。

自动续约SSL证书

按要求,要添加一个CNAME解析记录,CNAME的主机记录就是【_acme-challenge.qfafa.com】,cname记录值就是【qfafa.com.bf5eXXXXXXXX.dcv.cloudflare.com

最后看一下我所有的解析:

我的所有解析

做完这些后,可以等cloudflare那边生效,也可以直接一边做下面的事,一边等,不影响操作。

生效需要等的时间比较长,别人说要等10分钟左右,我等了15分钟才生效,生效后CF那边会变成下图所示,这时通过主力域名是可以正常访问你的网站的:

生效后CF显示图

3.6 优选线路的解析

解析是不用我们手动添加的,后面的程序会把选出来的优秀线路节点IP自动进行解析添加,而且是每隔一定时间就选一次ip然后修改解析,为了能让程序能自动解析,我们需要拿到dnspod的 API密钥的SecretId、SecretKey,操作如下图

dnspod密钥

dnspod只能建两个密钥,新建后要马上把SecretId和SecretKey记录下来,SecretKey只显示一次,下次就不能看了,只能删除后重新新建。

拿到密钥后,我们就可以去部署自动优选ip程序。

四、自动优选ip程序的部署

优选程序用的是cf2dns,它在github有源代码:

https://github.com/ddgth/cf2dns

我是部署到github,你也可以部署到本地或自己的服务器,自己根据文档研究一下怎么布署到本地和服务器。下面我以部署到github作演示:

4.1、登陆gitghub账号

4.2、进入上面的cf2dns项目, Fork 到自己的仓库

4.3、点击 Settings -> Secrets and variables -> Actions -> New repository secret,

github上变量添加

然后再里面分别添加DOMAINS、KEY、SECRETID、SECRETKEY几个变量和它们的值

  • KEY,是cf2dns程序获取优选线路ip的一个API接口密钥,需要从商店购买,你也可以使用 o1zrmHAF ,区别是 o1zrmHAF 是历史优选的Cloudflare IP(也可以从这个网站查到IP的信息),而购买的KEY是15分钟内获取到的对各运营商速度最优的的Cloudflare IP,看自己需求了。

  • SECRETID,填写dnspod获取的 SecretId

  • SECRETKEY,填写dnspod获取的 SecretKey

  • DOMAINS 填写域名信息, 格式如下:


    {"htizi.cc": {"@": ["CM","CU","CT"], "www": ["CM","CU","CT"]},"xxx.com": {"@":["CM","CU","CT"]}}

    注意:(1)这是标准的json格式字符串,填写时注意不要有换行。(2)支持添加多个域名,比如上面添加了htizi.cc和xxx.com两个域名 (3)CM是移动、CU是联通、CT是电信,表示对三大运营商进行独立解析(4)支持添加多个子域名,上面 htizi.cc添加了两个子域名一个是带www和一个什么也不带的。

  • DOMAINSV6 如果需要更新AAA解析(即ipv6)请增加此变量,格式同上面的DOMAINS一样。

4.4、修改cf2dns_actions.py文件里的参数

主要是下面三角参数,如果你也用的是dnspod,不用修改直接默认就行了。

#DNS服务商 如果使用DNSPod改为1 如果使用阿里云解析改成2  如果使用华为云解析改成3
DNS_SERVER = 1
#如果试用华为云解析 需要从API凭证-项目列表中获取
REGION_HW = 'cn-east-3'
#如果使用阿里云解析 REGION出现错误再修改 默认不需要修改 https://help.aliyun.com/document_detail/198326.html
REGION_ALI = 'cn-hongkong'

4.5、.github/workflows/run.yml 文件

  - cron: '*/16 * * * *'

这个参数是控制运行周期的

run.yml 文件的主要参数

把它修改成15,点击右边【Commit changes】提交

修改运行周期

接着再弹出一个确认提交的框,继续点这个框里的【Commit changes】

确认提交的框

4.6、现在程序已经在运行了,点击action -> GitHub Actions CloudFlare2DNSPod Bot,如下图所示,就可以看到程序的运行日志

工作流的运行日志

4.7 去dnspod看看,你会看到自动添加了很多新的解析

dnspod上添加的新解析

评论(0 条)

加载更多