Cloudflare 影响性能

Cloudflare 影响性能

我最近在即将启动的新网站上设置了 cloudflare。我在开启和关闭它的情况下运行了一些基准测试,结果非常令人不安。这对任何人来说都有意义吗?

之前我使用这个运行 Apache 基准测试实用程序:

ab -kc 10 -t 10 http://<site_url>

我得到的输出是:

Requests per second: 94.79 [#/sec] (mean)

现在我得到的输出

Requests per second: 18.32 [#/sec] (mean)

为了确保新设置不会与基准测试冲突,我使用 cloudflare 下的主机名和非 cloudflare 下的主机名再次运行了该测试。结果仍然一样。

这是否与您的地理位置 DNS 服务器的工作方式有关,而不是 cloudflare 的瓶颈?

我原本以为它会缓存 js、css 和图像文件,而不缓存 php 脚本。但是当我对网站进行基准测试时,似乎有其他原因导致它阻塞。

请求时间的输出也有点令人不安。

这是没有 cloadflare 的情况:

Percentage of the requests served within a certain time (ms)
50% 104 
66% 109 
75% 112 
80% 114 
90% 121 
95% 129 
98% 142 
99% 150 
100% 158 (longest request)

这是:

Percentage of the requests served within a certain time (ms)
50% 103 
66% 114 
75% 122 
80% 129 
90% 3076
95% 3093 
98% 3112 
99% 3128 
100% 9146 (longest request)

我唯一能想到的就是安全问题会阻止多个请求。如果是这样,那么只要“真正的”最终用户不会注意到我就没事了。只是想更好地了解一旦完成并上线,这会对网站产生什么影响。

答案1

我在使用 cloudflare 时也遇到了同样的问题。我的浏览器有时需要 10-12 秒才能连接到他们的服务器,而 direct 则不会出现此问题。

最好的办法是使用 mtr 并检查到您站点的跳数。您将无法查找 ips 的位置,据我所知,您只能猜测他们在 DNS 名称中使用的机场命名代码。sfo - 旧金山、sjc - 圣何塞等。

与 HaZe 的说法相反,您可以获取访问者的实际 IP,但您必须自行设置。我使用的是 nginx,并且已设置 set_real_ip 指令,它运行良好。

Cloudflare 的安全性似乎还不错,但即使在低设置下,一些合法用户也被阻止查看我的网站。不幸的是,使用 cloudflare 似乎使我的网站更容易受到 DOS 攻击,因为 DDOSers 似乎喜欢以他们及其数据中心为目标。我的网站被关闭了大约 30 分钟,原因是他们的一个数据中心遭到了攻击,他们无法缓解。

支持似乎也不尽如人意。询问上述任何问题时,通常都会得到严厉的答复或“我们这边没有问题,请查看此 wiki 页面”的笼统回答。在大多数情况下,您最好自己弄清楚,但对于像这样的关键任务,这令人沮丧。

每月 20 美元的价格确实物超所值,尤其是当您要提供大量数据时,因为他们会以极低的成本卸载这些数据。他们的按国家/地区屏蔽功能本身也物有所值。

我当然希望在明年他们能够实现产品多样化,放弃业务的 CDN 方面,转而专注于安全部分。

至于阻止,在控制面板下将您正在测试的任何 IP 添加到白名单中,这应该会有所帮助。

答案2

Cloudflare 使用代理服务器系统来“优化”您的网站:如果您的网站设置为“优化”,那么每当您从互联网浏览器访问该网站时,它都会显示为 cloudflare 的 IP。(尝试 ping cloudflare 使用的 www.website.com,并可能创建一个直接指向您的 IP 的 direct.website.com。您会首先注意到,IP 是不同的。

ping 我的网站(www 是直接的,www1 是通过 Cloudflare,我到直接服务器的 ping 时间平均为 12 毫秒。通过 cloudflare 的 ping 时间(因此只 ping cloudflare 的服务器)平均为 232 毫秒。)因此,使用 cloudflare 的 ping 时间通常更长。希望缩短页面加载时间,因为您网站上的大部分内容(如果在 cloudflare 的设置中设置)都已缓存,如果 cloudflare 的服务器比您的服务器更快和/或网络连接更好,则加载速度会更快。

我个人认为 cloudflare 的代理选项不太好,虽然它更安全,但它使服务器日志不合法(只显示在 cloudflare 的 IP 列表下)。有些请求甚至不会出现,因为它们被缓存了。

您说得对,如果多个请求来自同一个 IP,并且在短时间内,cloudflare 确实会阻止其中一些请求,虽然我没有确凿的证据,但我也注意到了这种趋势。

也许如果您在网站上启用了很多选项,它必须检查某些方面,如 cloudflare 配置系统中的选项所述。(必须对照黑名单进行检查,必须使用代理,必须查找 Google 分析,确保 JavaScript 和图像已压缩,等等。

总体意见:有需要就用,否则直接用就行。

相关内容