nginx HTTP/2模块支持服务器推送吗?

15
4个回答

20

截至2016年9月13日,版本1.11.4仍然如此。 - B Seven
有关nginx何时添加服务器推送的任何消息吗?我非常渴望等待这个功能... - n1try

14

编辑:

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

旧答案:

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

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

  • 这是http/2的非必要和可选部分

  • 如果客户端已经缓存了资源,则将其推送给他们可能会浪费带宽。

  • 服务器推送规范可能在未来更改。

  • 链接头作为提示很有用,但是网站开发者的使用率很低。

  • 服务器推送作为SPDY的一部分已经存在,并未被许多网站开发人员使用过。

阅读他的原始评论,请单击此处。 这个表格准确描述了服务器提示与服务器推送的利弊。

就我个人而言,我感到失望,因为我认为这将是愿意投入时间优化页面速度的网站开发人员的有价值的功能。我也知道一些像Cloudflare这样的大型CDN已经在nginx中实现了他们自己的版本,以优化页面下载。


1
这并不像人们想象的那样浪费带宽。推送对象的标头会在请求的页面之前首先发送,以便客户端有一些时间来取消服务器推送。 - StephenKing
@StephenKing 如果实现了服务器推送,客户端可能在与服务器推送相关的帧到达之前就没有机会进行重置。因此,这可能是浪费的。然而,有几个明显的解决方案可以避免推送可能被缓存的资源,包括使用 cookie 和简单的日志历史记录。 - Patrick Collins
8
我喜欢Owen的说法:“网站开发人员使用率低”,这不是因为Nginx不支持它吗?! - developius

4

我刚试了一下,效果很棒 - 你可以为静态内容(由NGINX直接提供)以及后端设置(只要后端通过“Link”头广告链接)。我在这里记录了我所学到的内容:https://ops.tips/blog/nginx-http2-server-push/ - Ciro Costa

-5

1
从您的URL:此版本不支持HTTP / 2 RFC中定义的“服务器推送”功能。未来的NGINX Plus版本可能会包括它。 - Maximillian Laumeister
我发布了两个URL,哪一个说明它不支持它? - Archimedes Trajano
从第一个链接中:“HTTP/2 RFC 中定义的“服务器推送”功能在此版本中不受支持。未来的 NGINX Plus 版本可能会包括它。” - Maximillian Laumeister

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接