通过 CNAME 接入 Cloudflare
Cloudflare 目前只能通过修改 NS 服务器来添加域名,但如果可以使用 CNAME 接入,那么可以更灵活的做一些事,例如:国内用户或者仅搜索引擎的蜘蛛访问源服务器,其他用户访问 Cloudflare 的 CDN,这样可以使用 Cloudflare CDN/WAF 等服务的同时,又可以不影响收录或避免国内用户访问 Cloudflare CDN 可能遇到困难
准备
首先我们需要准备两个域名,例如:
- example.com - 你的网站域名
- cname.com - 用于 Cloudflare
然后将 example.com
通过修改 NS 服务器的方式接入到 AliDNS 或 DNSPod (或者其他能够按地区解析的智能 DNS 服务商)上,将 cname.com
通过修改 NS 服务器的方式接入到 Cloudflare
这部分具体操作就不过一遍了
设置 Cloudflare
在将 cname.com
添加后,首先在「DNS」添加记录:
添加一个 A 类型,「名称」自定义如我这里的 cdn
,IP 地址设置为你的服务器 IP(如 1.2.3.4
),并开启「代理状态」
前往「SSL/TLS」的「自定义主机名」,第一次访问会要求你绑定信用卡或 Paypal 以开启 Cloudflare for SaaS,自行绑定一下即可
在「添加回退源」处,添加刚才添加的记录,如 cdn.cname.com
然后点击「添加自定义主机名」,添加你的网站域名,如 example.com
这个时候回到「自定义主机名」页面,就可以点击刚才添加的自定义主机名,就可以看到域名的状态,提示需要进行添加 TXT 记录进行验证
然后如上图添加两个「记录类型」为 TXT
的解析:
- 「主机记录」:
_acme-challenge
「记录值」:4_xZHtcLQAdmOJ0I2oe98R7XuRexQyRzQnGu4zynxzE
- 「主机记录」:
_cf-custom-hostname
「记录值」:bc6c8c50-c02a-4ab0-95bd-6f97a9607479
注意,「主机记录」不用带上完整的域名,例如说和我的不一样你只是想用某个二级域名如 www
或 bbs
CNAME 到 Cloudflare,那么页面上可能显示的是 _acme-challenge.www.example.com
,但在填写「主机记录」只用写成 _acme-challenge.www
即可
等待一会儿,页面显示「有效」时就可以了
设置 CNAME 到 Cloudflare
回到 AliDNS 或 DNSPod
以上图为例,我将「中国」地区和「搜索引擎」设置为访问源站,而其他地区访问 Cloudflare 的 CDN,在设置后你可以前往 ITDog 或 炸了么,ping 一下就可以知道是否生效了