HTTP/2已发布并得到所有主要浏览器的支持。像Apache和nginx这样的主要Web服务器中都有实现。但对于我们Ruby程序员来说,目前选择相当有限。曾经(2014年12月),Aaron Patterson正在探索想法以支持Rack 2.0中的HTTP/2,但尚未实现。他还发布了一些可能适用于Puma和WEBrick的示例。这是我找到的全部内容。我的问题是:如果我想在Rails应用程序中使用HTTP/2,存在哪些选项?它们包括HTTP/2的哪些特性?其中任何一个能够投入生产吗?
如果你想要声称支持HTTP/2,你可以使用NGinX和Ruby后端运行,与正常情况下类似(https://www.nginx.com/blog/how-nginx-plans-to-support-http2/)。这样做并不会给你像在没有客户端请求的情况下从服务器推送资源等HTTP/2特定功能。我相信它会提供你所关心的基本HTTP/2功能,每个连接多个请求(无慢启动)和在一个连接上进行复用(不需要多个连接)。所以这很好。
截至2018年4月,Rails v5.2.0已经包含了HTTP/2早期提示功能,可以在主请求之前发送资源(资源推送): https://weblog.rubyonrails.org/2018/4/9/Rails-5-2-0-final/ 注意:您仍需要启动版本为v3.11.4的Puma并使用--early-hints标志。