在 Cloudflare 级别终止 SSL。我可以获得性能提升吗?

在 Cloudflare 级别终止 SSL。我可以获得性能提升吗?

我在一个帖子里看到在 Cloudflare 级别终止 SSL 并且从 Cloudflare 到原点的 HTTP 流量仅可以提高性能,因为 SSL 仅在边缘进行协商。

我经营一个网站(大部分是静态的),对安全性并不是一个过分担心的问题。

是否值得关闭我的 letsencrypt 证书以使用 Cloudflare 提供的“灵活证书”来避免边缘和原点之间昂贵的往返?

编辑:

我关心的并不是 CPU(原始机器),而是能否加快边缘和原始之间的速度。

答案1

Cloudflare 不仅提供 SSL 终止,还提供与 SSL 结合运行的 HTTP/2。这可以提高速度,特别是如果您可以缓存大部分网站内容(静态文件、图像文件等)。我有点惊讶这里的其他评论者甚至没有提到 HTTP/2,因为它为 HTTP 协议带来了各种改进。

因此,我认为 - 如果您可以升级 Web 服务器以支持 HTTPS+HTTP/2(最新版本的 Nginx 可以,我认为 Apache 可以使用适当的模块插件),这实际上将成为有助于提高速度的主要改进。如果您无法支持 HTTP/2,Cloudflare SSL 终止及其 HTTP/2 支持是下一个选项。如果您愿意/能够运行两个都,即 Cloudflare HTTPS+HTTP/2 终止,并且它们与您的源站之间使用 HTTPS+HTTP/2,则网站将极其快速且响应迅速。在将我的一个网站切换到整个 HTTPS+HTTP/2 管道后,我自己也注意到了这一点,加载速度明显加快,这主要是由于 HTTP/2 带来的改进。

答案2

鉴于您谈论的是静态内容,我认为仅仅为了删除 SSL 握手而降低冷缓存情况的安全性没有任何意义。显然,您将拥有适当的缓存控制标头,并将缓存此内容一段时间。

我还要警告不要进行任何微优化,这种优化试图消除边缘和原点之间的动态内容加密,以删除 RTT 或 2。Cloudflare 已经可以对此进行大量优化,并在一段时间内保持与原点的连接开放,从而切断 SSL 握手、增加拥塞窗口大小等等。

答案3

通过使 TLS 协商更接近用户,TLS 协商肯定会有所改进。TLS 协商仍然是在发送实际数据的第一个字节之前发生的一堆数据包,因此使其更接近用户会使会话建立更快。这只是基本的光速问题 - 在其他条件相同的情况下,数据包需要传输的物理距离越短,速度就越快。

问题是:这真的很重要吗?你应该关心吗?就 Stack Overflow 而言,我们每分钟建立数千个用户 TLS 连接,因此当您在 24 小时内添加数百万个 TLS 会话时,每毫秒都很重要。

但是,如果您每小时仅获得几次点击,那么将 SSL 移动到 CDN 不会为会话建立带来大量的累积收益。

就从 CDN 返回原点的连接而言,CloudFlare 应该使用相同的几个会话(来自每个 PoP),这样它就不会代表客户端重新建立。CloudFlare 曾经(也许现在仍然有?)有一个名为“电磁炮“,这使得终止 CDN 上的 TLS 变得更加有利。

但是,我会三思而后行,不要切断您源站上的 Lets Encrypt。您可能仍想在 CloudFlare 和本地 Web 服务器之间进行加密。这不会对性能造成任何影响,而且这样您仍可阻止从 Cloudflare 到您的源站的监听。

答案4

如果您是从网络层面来讲的,那么显然这不是一个值得的收获,正如其他评论已经发现的那样。

但是,如果原始服务器的 CPU 存在问题,那么这可能是个好主意,因为内容的 SSL 化确实会消耗 CPU 开销(假设约为 20%)。但是,如果原始服务器没有 CPU 问题,那么节省不了多少,因此根本不值得。

相关内容