一看这标题就是不准备好好写的。对的,最近特别忙,只能简单记录一下折腾的东西。
Nginx开启server push
- 升级nginx到1.13.9或以上版本(注意1.13.6修改http/2的实现,与一些旧版本客户端不兼容,比如旧版Android okhttp)
- nginx配置中加上
http2_push_preload on
,表示使用preload header来作为server push标识
Node开启server push
Node处理文件内容时加上preload header即可,例如:
1 | link: </main.37d69167.css>; as=style; rel=preload, </main.f06ad8b3.css>; as=style; rel=preload |
此处比较科学的做法应该是使用一个中间件,在返回内容之前,根据要返回的HTML内容来处理preload header。
因为我主要处理静态html文件,又用的koa,所以将主要逻辑放在了koa-static的setHeaders
函数中。setHeaders
主要用于在返回静态文件前设置自定义的header,刚好和server push的场景相符。