2018-02-20 刚刚更新的 nginx-1.13.9 已支持 HTTP/2 的特性 Server Push ,这个特性目的是让服务端将部分资源主动推送给浏览器,节约浏览器需要使用这些资源时再次发送 Get 请求的时间。很长的一段时间内 Nginx 都是不支持这个特性的,不过在新版本中已经可以使用,详细改动可以查看 http://hg.nginx.org/nginx/rev/641306096f5b

Nginx 中的 Server Push 提供两个选项:

直接指定需要推送的资源,Nginx 会直接推送(只能使用相对链接)。

http2_push  /css/style.css;

使用 W3C文档 规定的 Link 字段作为 HTML 响应。

Link: </style.css>; as=style; rel=preload;

然后在配置中开启

http2_push_preload on;

为了方便,我选择第一种方式,直接指定需要推送的资源文件。之后在 Chrome 的 Developer Tools —— Network 面板中可以看到我指定推送的资源状态为 Push