通过CloudFlare Partner计划使用cname接入CloudFlare免费CDN

作为全世界最大的CDN网络公司之一,CloudFlare提供基于反向代理的内容分发网络以及分布式域名解析服务(很高大上是吧?其实就是Anycast+CDN+DNS)。在我看来,CloudFlare家还是挺有钱的,他家推出了免费DNS和CDN服务。正常开启CDN服务需要将域名的NS解析到他家的NS服务器,但是通过CloudFlare Partner计划里面提供的API,我们可以方便地通过cname接入他家的CDN。接入的同时,CloudFlare会自动为你申请SSL证书开启HTTPS,下面介绍下cname接入的流程:

一、通过Partner API将域名添加到CloudFlare的个人账号
申请Partner账号的过程就不罗嗦了,如果实在有需要再写教程。在这里提供两种方法来将域名添加到CloudFlare账号(所有演示基于Centos系统):

1) 通过命令行操作
1、首先在VPS上下载 https://github.com/fffonion/cloudflare-partner-cli/raw/master/cloudflare-partner-cli.py并安装Python,代码如下:
# wgethttps://github.com/fffonion/cloudflare-partner-cli/raw/master/cloudflare-partner-cli.py && yum install python -y

2、修改cloudflare-partner-cli.py文件中的HOSTKEY的值为你的CloudFlare Partner API(在https://partners.cloudflare.com/api-management 获取你的API),记得需要添加双引号

3、输入pythoncloudflare-partner-cli.py并按照提示操作

注意:第一次执行会要求你输入邮箱和密码,请输入你的CloudFlare个人账号(非Partner)的邮箱和密码,对CloudFlare CDN的所有操作需要通过该个人账号进行管理,Partner账号仅有权删除接入后的域名,无法管理

输入6并填写相应信息

源站地址必须要以域名的形式填写,通过A记录或CNAME记录解析到源站IP均可

该命令行程序目前已不再更新,由于CloudFlare官方更换了部分API和验证方式,因此该程序部分功能失效

2) 通过PHP开源面板操作
1、安装PHP、MySQL环境

2、从GitHub上下载源代码 ,并解压到网站目录,记住你的数据库名、用户名和密码,配置时需要用到

GitHub下载
3、修改Application/Home/Controller/CFController.class.php文件中host_key的值为你的CloudFlare Partner API(在https://partners.cloudflare.com/api-management 获取你的API),记得保留单引号

4、使用浏览器访问(第一次访问会运行安装向导,这一步是OneThink提供的操作)

5、输入你的CloudFlare个人账号(非Partner)的邮箱和密码

6、点击左侧的添加新域名,并安装提示填写

二、在DNS后台将你想启用CDN的网址CNAME解析到yourdomain.cdn.cloudflare.net,并删除原有的CNAME/A记录(删除这一步可不做,但推荐做)
三、登录到CloudFlare个人账号的后台对域名进行操作,如SSL等

至此大功告成,网站已启用了CloudFlare的CDN !

关于SSL证书问题
今年初,CloudFlare对颁发SSL证书的方式从原来的需手动添加DNS验证变成自动验证,只需将网站域名的解析记录即可CloudFlare提供的CDN地址即可,证书将会在1小时左右颁发,此时HTTPS就会启用了