2015-11-05 110 views

回答

18

是,Nginx的支持HTTP/2服务器推送自version 1.13.9,于2月20日公布,2018年,这是不支持

Nginx的团队在原有1.9.5 blog post指出那时候。

+0

为V 1.11.4的13,这仍然是正确的。 –

+0

什么时候服务器推送的新闻将被添加到nginx?等待这么糟糕... – n1try

-5

您需要为nginx plus订阅https://www.nginx.com/blog/http2-r7/付费。

Apache提供它是免费的

https://httpd.apache.org/docs/2.4/mod/mod_http2.html#h2push

+1

从您的网址:“此版本不支持HTTP/2 RFC中定义的”服务器推送“功能,未来的NGINX Plus版本可能会包含它。” –

+0

我发布了两个URL,哪一个表示不支持它? –

+0

从第一个链接开始:“本版本不支持HTTP/2 RFC中定义的”服务器推送“功能,未来的NGINX Plus版本可能会包含它。 –

14

编辑:

Nginx的支持,因为v1.13.9 HTTP/2服务器推送,于2月20日公布,2018年

较旧的回答:

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

欧文加勒特在nginx的总结原因如下:

  • 是HTTP/2

  • 的非必需和可选部分,如果客户端已经拥有资源的缓存,然后通过推送给他们,你可能会不必要地浪费带宽。

  • 服务器推送规格可能在未来发生变化。

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

  • 服务器推送已作为SPDY的一部分提供,并未被许多Web开发人员使用。

阅读他的原始评论here。这table准确地描述了服务器提示与服务器推送的pro和con。

个人而言,这令我感到失望,因为我认为这对于愿意投入时间优化页面速度的Web开发人员来说是一项宝贵功能。我也知道一些像Cloudflare这样的大型CDN在nginx中实现了自己的版本来优化页面下载。

对HTTP/2服务器推送
+1

这并不是真正意义上的浪费带宽。推送对象的标题首先被发送(在请求页面之前),以便客户端应该有一些时间来取消服务器推送。 – StephenKing

+0

@StephenKing如果实现了服务器推送,客户端在与服务器推送相关的帧已经到达之前可能不会得到重置的机会。所以这可能是浪费。但是,有几个明显的解决方案不会推送可能被缓存的资产,包括使用cookie和简单的日志历史记录。 –

+8

我爱欧文说“网络开发者的使用率一直很低” - 这不是因为Nginx不支持它吗?! – developius

3

支持已被添加到nginx的为2月8的,2018:2016年9月

https://hg.nginx.org/nginx/rev/641306096f5b

+0

我只是试了一下,效果很好 - 你可以设置你的静态内容(直接由NGINX服务器)以及后端(只要后端通过链接标题通告链接)。我记录了我在这里学到的内容:https://ops.tips/blog/nginx-http2-server-push/ –