【问题标题】:Does the nginx HTTP/2 module support Server Push?nginx HTTP/2 模块是否支持服务器推送?
【发布时间】:2016-02-05 20:28:43
【问题描述】:

我打算将我的 nginx 升级到支持 HTTP/2 的 1.9.6。

nginx实现了HTTP/2服务器推送吗?

参考: https://ma.ttias.be/service-side-push-http2-nghttp2/

【问题讨论】:

    标签: ssl nginx server-push http2


    【解决方案1】:

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

    Nginx 团队在原1.9.5 blog post 中指出,当时不支持。

    【讨论】:

    • 从 2016 年 9 月 13 日的 v 1.11.4 开始,这仍然是正确的。
    • 关于服务器推送何时会添加到 nginx 的任何消息?等待这个如此糟糕......
    【解决方案2】:

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

    Apache 免费提供

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

    【讨论】:

    • 来自您的 URL:“此版本不支持 HTTP/2 RFC 中定义的“服务器推送”功能。NGINX Plus 的未来版本可能包含它。”
    • 我贴了两个网址,哪一个说不支持?
    • 来自第一个链接:“此版本不支持 HTTP/2 RFC 中定义的“服务器推送”功能。NGINX Plus 的未来版本可能包含它。”
    【解决方案3】:

    编辑:

    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 中实现了自己的版本来优化页面下载。

    【讨论】:

    • 这并不像人们想象的那样浪费带宽。推送对象的标头首先发送(在请求的页面之前),以便客户端应该有一些时间来取消服务器推送。
    • @StephenKing 如果实现了服务器推送,则客户端可能在与服务器推送相关的帧已经到达之前没有机会重置。所以很可能是浪费。但是,有几种明显的解决方案可以避免推送可能被缓存的资产,包括使用 cookie 和简单的日志历史记录。
    • 我喜欢 Owen 所说的“Web 开发人员的使用率很低”——这不是 因为 Nginx 不支持它吗?!
    【解决方案4】:

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

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

    【讨论】:

    • 我刚刚试了一下,效果很好 - 您可以为静态内容(直接由 NGINX 提供服务器)和后端(只要后端通过 Link 标头宣传链接)进行设置。我记录了我在这里学到的东西:ops.tips/blog/nginx-http2-server-push
    猜你喜欢
    • 2017-03-04
    • 2011-05-22
    • 2013-01-14
    • 1970-01-01
    • 2011-06-07
    • 2017-09-22
    • 2017-09-06
    • 2016-06-14
    • 2017-05-20
    相关资源
    最近更新 更多