Ssl nginx HTTP/2模块是否支持服务器推送?

Ssl nginx HTTP/2模块是否支持服务器推送?,ssl,nginx,server-push,http2,Ssl,Nginx,Server Push,Http2,我计划将我的nginx升级到支持HTTP/2的1.9.6 nginx是否实现了HTTP/2服务器推送 参考: 是的,自2018年2月20日发布以来,Nginx支持HTTP/2服务器推送 Nginx团队在原始文件中指出,它当时不受支持。您需要使用Nginx plus订阅付费 Apache免费提供它 编辑: Nginx自2018年2月20日发布的v1.13.9版以来支持HTTP/2服务器推送 旧答案: 截至2017年3月,Nginx不支持HTTP/2服务器推送(v1.11) nginx的Owen G

我计划将我的nginx升级到支持HTTP/2的1.9.6

nginx是否实现了HTTP/2服务器推送

参考:

是的,自2018年2月20日发布以来,Nginx支持HTTP/2服务器推送


Nginx团队在原始文件中指出,它当时不受支持。

您需要使用Nginx plus订阅付费

Apache免费提供它

编辑:

Nginx自2018年2月20日发布的v1.13.9版以来支持HTTP/2服务器推送

旧答案:

截至2017年3月,Nginx不支持HTTP/2服务器推送(v1.11)

nginx的Owen Garrett总结了以下原因:

  • 它是http/2的非必需和可选部分

  • 如果客户机已经缓存了资源,那么将其推给客户机可能会不必要地浪费带宽

  • 服务器推送规范将来可能会更改

  • 链接头作为提示是有用的,但是web开发人员使用率很低

  • 服务器推送是SPDY的一部分,许多web开发人员没有使用它

阅读他的原始评论。这准确地描述了服务器提示与服务器推送的优缺点


就我个人而言,这让我很失望,因为我认为这对于愿意花时间优化页面速度的web开发人员来说是一个很有价值的功能。我还知道,一些大型CDN(如Cloudflare)已经在nginx中实施了自己的版本,以优化页面下载。

自2018年2月8日起,nginx已添加了对http/2服务器推送的支持:


从您的URL:“HTTP/2 RFC中定义的“服务器推送”功能在此版本中不受支持。NGINX Plus的未来版本可能会包括它。”我发布了两个URL,其中一个表示不支持它?从第一个链接:“服务器推送”此版本不支持HTTP/2 RFC中定义的功能。NGINX Plus的未来版本可能包括此功能。“从2016年9月13日的1.11.4版开始,这仍然是事实。关于何时将服务器推送添加到NGINX的任何新闻?等待这个如此糟糕…这并不像人们想象的那样浪费带宽。推送对象的标题首先发送(在请求的页面之前),以便客户端有时间取消服务器推送。@StephenKing如果实现了服务器推送,则在与服务器推送相关的帧到达之前,客户端可能没有机会重置。所以这可能是浪费。然而,有几种明显的解决方案可以避免推送可能被缓存的资产,包括使用cookie和简单的日志历史记录。我喜欢Owen所说的“web开发人员使用率一直很低”——这不是因为Nginx不支持它吗?!我只是尝试了一下,效果很好-您可以设置静态内容(直接由NGINX提供服务器)和后端(只要后端通过
链接
标题发布链接)。我在这里记录了我学到的东西: