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


2

我在帖子看到,由于仅在边缘协商SSL,因此在Cloudflare级别终止SSL且仅HTTP从Cloudflare到源的流量可以提高性能。

我经营的网站(通常是静态的)的安全性不是一个偏执的问题。

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

编辑:

我关注的不是CPU(原始机器)。更重要的是,我是否可以加快边缘和原点之间的距离。


3
不,可能不是。SSL根本不会给现代服务器增加太多负担。如果它大多是静态的,具有CloudFlare的缓存尽可能在其终端,防止它深入到你的服务器在所有
ceejayoz

CF缓存图像和CSS,但不缓存页面本身。我不想在CF级别缓存页面。因此,总会有一个原点命中。
Quintin Par

确定此结果的最佳方法是运行一些基准测试。我建议您使用“ apache bench”来模拟两种配置的预期平均负载,这将回答您的问题。要花一个小时左右的时间来获得针对您的设置定制的答案。完成后,请回答您自己的问题,以便其他人可以从中学习。
蒂姆(Tim)

@ceejayoz光速仍然相同。在原始服务器上终止SSL意味着,每当客户端建立SSL连接时,都必须全程支付往返到原始服务器的所有费用。如果SSL被Cloudflare终止,则您只有SSL从客户端到Cloudflare的往返行程。当然,Cloudflare仍必须与原始服务器进行通信,但这仅是HTTP的两次往返,如果Cloudflare预先建立了连接,则只需一次。
kasperd

1
@kasperd 两者都可以使用SSL终止。CloudFlare仍可以缓存,但是CloudFlare与源之间的通信也将从安全性中受益。有关详细信息,请访问blog.cloudflare.com/…–
ceejayoz

Answers:


2

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对表的改进。


如何确保我的Nginx配置仅为http2
Quintin Par

您不能这样做,因为HTTP / 2是通过传统HTTP的升级机制调用的。请参阅tools.ietf.org/html/rfc7540#section-3.2
parkamark

1

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

我还要提醒您,任何微优化都将试图终止动态内容的边缘和原始之间的加密,以删除RTT或2。Cloudflare已经可以对其进行大量优化,并在一段时间内保持对原始开放减少SSL握手,增加拥塞窗口的大小等。


1

如果您在网络级别发言,显然不是其他评论已经发现的有价值的收获。

但是在源服务器上出现CPU问题的情况下,这可能是一个主意,因为内容的SSL化确实会花费CPU开销(比如说大约20%)。但是,如果您在原点上没有CPU问题,它将不会节省太多,因此根本不值得。


1
SSL / TLS大约十年来并未占用大量CPU开销。AES-NI在2008
Mark Henderson

1

通过与用户进行更紧密的协商,TLS协商肯定会有所改进。TLS协商仍然是在发送实际数据的第一个字节之前发生的一堆数据包,因此使其与用户的距离越近,会话建立速度就越快。这只是轻便的东西的基本速度-数据包必须经过的物理距离越小,其他所有条件都相等,则速度越快。

问题是:这真的重要吗?你应该在乎吗?对于Stack Overflow,我们每分钟建立数以千计的用户TLS连接,因此当您在24小时内总计添加数百万个TLS会话时,每一毫秒都非常重要。

但是,如果您每小时仅获得几次点击,则通过将SSL移至CDN可以大大减少会话建立的累积收益。

在从CDN到源的连接方面,CloudFlare应该使用相同的几个会话(来自每个PoP),这样就不会代表客户端重新建立连接。CloudFlare曾经(也许现在还在吗?)拥有一个称为“ Railgun ” 的WAN加速器,这使得在CDN上终止TLS更加冒险。

但是,我会三思而后行地切断您的Lets Encrypt。您可能仍想在CloudFlare和本地Web服务器之间进行加密。这不会对性能造成任何影响,因此您仍然停止从Cloudflare窥探您的来源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.