我为什么迁移到了Cloudflare

这一阵子,我将我的服务器迁移到了美国,然后给我的网站套上了Cloudflare。

我的网站原本假设在香港微软云的服务器上,在 Azure最近一次网络架构调整之前,电信直连的延迟仅需27毫秒。即使现在,也是可以接受的三网100毫秒。而迁移到美国套上Cloudflare之后,延迟骤增到了170毫秒。到了晚上,还会有很高的丢包率。

我当然不傻,知道继续在香港架设这个博客访问速度会比套在Cloudflare上快上不少,还能顺手利用学生身份白嫖服务器。然而,Cloudflare和美国服务器的组合却可以提供一些Azure学生机无法提供的东西。

现在我的博客架设在 Racknerd 的洛杉矶机房,趁着新年打折,2C2G的服务器一年的价格只需 25 美刀,即使在美西的服务器普遍很便宜的背景下也是十分突出的性价比。

之所以放弃使用Azure学生机,我需要援引一句话:

免费的就是最贵的

大部分看似免费的东西都需要我们在非金钱的方面付出更多成本:学生机虽然免费,但性能孱弱,1C1G,只能是勉强够用的水准。维护过自托管博客的站长肯定遇到过后台被爆破的问题,我的 WordPress 博客运行半年多,后台被爆破的情况几乎天天都有。学生机的性能弱到什么地步呢,只要有人用一秒一次的频率爆破后台,在不缓存的情况下,博客就会立马因为性能不足以处理这些请求而接近瘫痪。即使不瘫痪,TTFB 也会比正常情况下多1秒以上。因为学生机的性能,我没少花功夫去优化我的网站,比如前面提到的缓存,这些都十分消耗精力。

微软不是慈善机构,能为学生免费提供给服务器已经很不错了,更何况还在香港这种热门地点。我可以继续使用这一免费的解决方案,但问题是,人不可能永远呆在校园里,总有一天,我会失去高校学生的身份。我们不妨假设这样一段对话:

Q:清华大学的学生算是高校学生吗?

A:算。

Q:那中南大学的学生算吗?

A:嗯,算的。

Q:那某个野鸡大学的学生算是高校学生吗?

A:呃,这得看情况。

发现了吗?一家公司提供的免费的产品为谁提供的决定权和解释权并不在用户的手上,只要这家公司想,它就可以立刻收回白嫖的产品。这和免费域名的逻辑一样,你有使用权,但并无所有权。

为了停止使用 Azure 学生订阅,我一度想要放弃 Wordpress,改用静态化博客框架并托管在现成的静态网站托管服务上,却又不忍放弃我逐渐做好的 SEO。我也去找过国内的服务器,却发现价格太贵,套路太深。不想忍受大陆的“互联网狗牌”——ICP牌照制度,却又希望博客在大陆加载速度更快——没有完美的解决方案,我的博客想要面向大陆用户的访问速度,就需要钱和 ICP 牌照。

我开始问自己:我真的需要对大陆直连的访问速度吗?

我的访客,大部分都有挂代理的能力,即使是搜索引擎流量也大部分来自 Google。挂代理的能力还是一种过滤过滤低质量访客的手段,只有积极的绕过政府的封锁者才是真正的高质量访客。

牺牲大陆直连的速度,加速挂代理访问的速度,却又不完全被大陆封锁,同时不需要带着狗牌自我审查,这不正是我想要的吗?

只要牺牲大陆直连的速度,事情就变得简单起来,廉价的服务器已经有了,Cloudflare 提供了免费的全球(除了中国)CDN,有着强大的防御能力,而没有被中国完全封锁,更好的是,只要挂上代理,在中国大陆以外访问这个博客速度都会很快。不由得感叹中国大陆网络的孤立性。

# Version B

这一阵子,我将我的博客服务器迁移到了美国,然后采用了 Cloudflare 作为我的全球(除了中国)CDN。

我的博客原本架设在香港微软云上,而且服务器是我以学生身份免费领取的,可最近,这台服务器的表现越来越不尽如人意。香港地理位置非常好,网络也发达,理论上把博客架设在这里,可以给中国大陆的访客非常良好的体验,事实上,在我的博客开设初期,中国大陆的访客体验确实很好。

之所以说体验良好,主要是因为这三个方面:性能够用,大陆直连,免费。

所谓性能够用,但仅仅是勉强够用的水平。微软云针对学生免费的 B1S 实例,1C1G,硬盘 IO 经过实测只有几十mb/s,不说是金刚盘,也可以算是石头盘了。就这个性能,跑个 Wordpress 都费劲,我将博客缓存后方才勉强应付了架设初期的访问量。

所谓大陆直连,其实这仅适用于电信。在我刚拿到这个服务器的时候,实测 Traceroute 全程 59.xx 开头的 IP,妥妥的 CN2 线路。至于其他两个运营商就没那么好了,全都走东京 NTT 线路。

这么看下来,免费反而是最货真价实的优点了。微软云免费的学生额度有 100 刀一年,据官网介绍,这 100 刀用完,并且你还是学生,那么第二年可以再次申请。相当于是免费承包了学生时代的服务器。

当时刚拿到服务器的时候,微软云的这三个优点让我没有不选择它的理由,但随着我的博客运行半年多,这台服务器的问题就慢慢开始突出了。

首先就是让人非常难受的性能问题:如果说1C1G还能勉强说得过去的话,那么这个石头盘就真的太难受了。随着我的博客访问量逐渐增加,也就自然而然的引来了各路 Bot 的骚扰。这台服务器的综合性能甚至弱到了,只要有人用 1 秒一次的频率爆破我的后台,我的网站就会接近瘫痪。即使不瘫痪,TTFB 也会比正常情况下多1秒以上。

性能问题甚至已经影响到了我的 SEO :我已经多次收到邮件,提示我网页的打开速度太慢,需要优化,与此同时,我博客上来自谷歌的流量也显著降低,大概是因为搜索权重因为打开速度降低了不少。

SEO 问题

即使性能如此糟糕,在相当长的一段时间里,我也还是通过缓存等办法勉强维持了网页体验的整体质量。但微软云随后进行了一波令人吐血的操作:换线路。原本电信直连的香港直接并入了东京 NTT(刚去看了一下竟然变成绕新加坡了?),Traceroute 一下全都变成了 AS4134,CN2 直接变成 163。真有你的,微软云。这下,Azure 的网络优势也几乎尽数失去。

就算不好用,但是它免费啊,要什么自行车?

免费真的那么好吗?微软也不是慈善机构,能在香港这种热门的地方提供免费的服务器属实已经非常良心了。我还能要求什么呢?**我还能要求什么呢?**通过前面的换线路事件,我大概也见识到了,对于免费的产品,我们真的无法要求什么,甚至连最基本的要求都不行。不光如此,只要微软政策一换,我就立马无法继续白嫖。

在我的博客上线半年多以后,我发现,我已经没有理由再选择白嫖微软云学生机了。

那么,物色一个新的机器,成为了必要的选择:

起初我想寻找一个香港 CN2 直连的 VPS,但看了看价格,还是算了吧。最经典的搬瓦工,香港 CN2 要 899 刀一年,这显然不是我这个小破站能承受得起的。即使是更便宜的美国 CN2,仅仅 1C1G 的配置,也需要 49刀一年。换算成人民币需要 350 元一年。

更要命的是,CN2 网络因为承载量小,防御能力几乎没有,这就意味着我的博客要是遭到 DDOS 攻击,几乎完全无法防御。要是硬是想要防御,就得上 Cloudflare 这一类 CDN,但这样,CN2 线路的优点就不复存在。

实现快速似乎需要投入太多成本。这时我开始问自己,我真的需要很快的速度吗?我的访客,大部分都有挂代理的能力,即使是搜索引擎流量也大部分来自 Google。这样一来,Cloudflare 带来的直连速度的劣势得到了很大的缓解,而且,我还可以借助这一点过滤一些低质量的访客。

牺牲大陆直连的速度,加速挂代理访问的速度,却又不完全被大陆封锁,同时不需要带着狗牌自我审查,这不正是我想要的吗?

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy