【发布时间】:2016-02-05 20:28:43
【问题描述】:
我打算将我的 nginx 升级到支持 HTTP/2 的 1.9.6。
nginx实现了HTTP/2服务器推送吗?
【问题讨论】:
标签: ssl nginx server-push http2
我打算将我的 nginx 升级到支持 HTTP/2 的 1.9.6。
nginx实现了HTTP/2服务器推送吗?
【问题讨论】:
标签: ssl nginx server-push http2
是的,自 2018 年 2 月 20 日发布的 version 1.13.9 以来,Nginx 支持 HTTP/2 服务器推送。
Nginx 团队在原1.9.5 blog post 中指出,当时不支持。
【讨论】:
您需要通过 nginx plus 订阅 https://www.nginx.com/blog/http2-r7/ 付费。
Apache 免费提供
【讨论】:
编辑:
Nginx 自 2018 年 2 月 20 日发布的 v1.13.9 起支持 HTTP/2 服务器推送。
旧答案:
自 2017 年 3 月 (v1.11) 起,Nginx 不支持 HTTP/2 服务器推送。
nginx 的 Owen Garrett 总结了以下原因:
它是http/2的非必要和可选部分
如果客户端已经缓存了资源,那么将其推送给它们可能会不必要地浪费带宽。
服务器推送规范未来可能会发生变化。
链接标题作为提示很有用,但 Web 开发人员的使用率很低。
服务器推送已作为 SPDY 的一部分提供,并未被许多 Web 开发人员使用。
阅读他原来的 cmets here。这个table 准确地描述了服务器提示与服务器推送的优缺点。
就我个人而言,这让我很失望,因为我认为对于愿意花时间优化页面速度的 Web 开发人员来说,这将是一项有价值的功能。我也知道一些像 Cloudflare 这样的大型 CDN 已经在 nginx 中实现了自己的版本来优化页面下载。
【讨论】:
自 2018 年 2 月 8 日起,nginx 已添加对 http/2 服务器推送的支持:
【讨论】:
Link 标头宣传链接)进行设置。我记录了我在这里学到的东西:ops.tips/blog/nginx-http2-server-push