如何在我的生产设置中使用 HTTP-2?

How to use HTTP-2 in my production setup?

我有一个负载均衡器和 5 个原始服务器。对于每个请求,Akamai 都会命中 LB,并且该请求由任何服务器随机提供。如果我在其中一台原始服务器中启用 HTTP/2 可以吗? 它将如何影响我的系统? 如何衡量性能影响?

此外,ALPN 步骤是否在每一跳都发生?

A​​kamai 是一个 CDN。这意味着它处理所有传入流量 - 可能使用比原始服务器更靠近用户的服务器,然后直接提供可缓存资产,或将不可缓存资产传递回原始服务器。

HTTP 是一种逐跳协议(主要是 - 现在忽略 CONNECT 方法,因为它只被一些代理使用)。这意味着客户端连接到 Akamai(可能使用 HTTP/2),然后 Akamai 在单独的 HTTP 连接下连接到您的原始服务器(HTTP/1.1 as Akamai does not support HTTP/2 to Origin)。

所以回答你的问题,在你的一个原始服务器上启用 HTTP/2 将没有任何效果,因为客户端和 Akamai 都不会使用它。

是否需要 HTTP/2 起源或有益是值得商榷的。最大的收益将来自高延迟连接(例如 Akamai 服务器的初始客户端),尤其是因为浏览器通常将您限制为每个域 6 个连接。相比之下,对于 Akamai 到 Origin,这通常是通过快速连接(即使跨越很长的距离)并且可能不限于 6 个连接。