利用CloudFlare做免费服务器加速

前不久在我的怂恿下同事也想选择Hostigation来作为其服务器,可惜国内用网通的朋友报告说打开solf.me的速度极慢,在不换VPS的情况下唯有启用CDN,于是想起了曾经了解过的CloudFlare。

什么是CloudFlarecloudflare-logo

根据其官方说法,CloudFlare(CF)用于加速网站,以及保障网站可用率。其原理为:通过设置新的DNS,将用户访问服务器的request转发到CF,然后CF直接访问服务器取得response之后回复用户;同时,CF会缓存服务器的内容,以便在服务器不可用的情况下继续提供网站在线。下面这个官方涂鸦描述了其原理cloudflare-how-it-work

据称CF还提供安全措施防止DOS等攻击。CloudFlare号称全球拥有14个数据中心,会选用最优线路为就近用户加速,而离中国最近的就是香港和东京节点了cloudflare-data-centre

如何使用

1. 先到其主页https://www.cloudflare.com注册帐号,在提交帐号密码后会有40秒的等待,期间会播放一个tutorial说明CF是如何工作(其实就是宣传片),40秒后点击继续。cloudflare-how-it-work-video

2. 接着会进入第二步,检测原有的DNS记录,此步骤用于检查DNS记录是否正确,如果不变,默认即可。对于二级域名指向不同服务器的童鞋,可以将CF服务关闭,直接点击类似CF logo的云将其变灰即可cloudflare-howto

3. 第三步是选择套餐,因为默认是免费帐号,所以默认即可。

4. 最后一步,设置DNS。根据其提示,到域名注册商那里将DNS改成CF的DNS服务器即可。修改完后点击继续,之后CloudFlare就会开始为你加速。cloudflare-dns-setting

注意事项

说到底,CF其实就是一个反向代理,其加速原理只不过是利用其分布全球的节点来选择快速线路接入服务器而已。在不修改源码的基础上,普通网站可能无法获取用户真是的IP地址。如果是wordpress用户,可以使用官方提供的插件,这样用户留言就会保留原始IP。nginx-log

上图可以看出,所有访问的IP都是CloudFlare发出。

另外,使用CF其实可以防止被墙,因为用户访问的只是CF的地址,当然,前提是域名没有被墙、域名DNS没有被污染、以及CF没有被墙。