Nginx下Yii2程序开启http2及http2_push提速

nginx yii2 Yii2 · ez · 于 4年前 发布 · 2076 次阅读

网上有人说,网站用HTTP2推送接口请求极大的加快的网站访问速度。 其实也没有什么极大的提速,也就是5%左右。不过积少成多也得干。

三步搞定

1. 配置http2

HTTP2 和 HTTPS 目前所有支持 HTTP/2 的浏览器都是基于 TLS 1.2 协议之上构建 HTTP/2 的,所以要使用 HTTP/2 必须开启 HTTPS.

开启 HTTP2,只需要在 SSL 后面加上就能开启 HTTP2.

listen 443 ssl http2;

2.安装扩展 yii2-http2-server-push

yii2-http2-server-push,其功能是自动解析页面中可以被推送的文件,并把LINK信息加入到响应头中。

php composer.phar require devgroup/yii2-http2-server-push

3.nginx中开启http2_push_preload 指令

server{
    http2_push_preload on;
}

用chrome确认过眼神,就是他没错的。

添加头信息

PUSH传输

百因必有果

原理很简单,减少请求次数,利用Push这个机制。 Nginx 1.13.9 就增加了 HTTP2_Push 支持。Nginx 开启 HTTP2 推送有两种方法。

1.http2_push 指令

强制推送某 URL。

location / {
        index  index.html;
        http2_push /css/allinone.min.css;
    }

这个方法太硬了,我们需要灵活一点。所以这个方法不是今天的讨论重点。

2.http2_push_preload 指令

Nginx 会解析预加载 Link 头动态的推送某 URL。

server{
    http2_push_preload on;
    location / {
        index  index.html;
    }
}

本文由 ez 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册