欢迎来到代码驿站!

Nginx

当前位置:首页 > 服务器 > Nginx

升级nginx支持HTTP/2服务端推送的方法

时间:2020-12-20 12:03:53|栏目:Nginx|点击:

内容概览

NGINX从1.13.9版本开始支持HTTP/2服务端推送,上周找时间升级了下NGINX,在博客上试验新的特性。

升级工作主要包括:

  1. 升级NGINX
  2. 修改NGINX配置
  3. 修改wordpress主题

升级NGINX到1.14.0

1、配置nginx官方的yum源。创建配置文件 /etc/yum.repos.d/nginx.repo ,写入如下内容

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

2、更新nginx

yum update

3、重启nginx

systemctl restart nginx

4、验证nginx版本

$ curl -I 127.0.0.1
HTTP/1.1 301 Moved Permanently
Server: nginx/1.14.0

修改NGINX配置

在原有的配置上,加上 http2_push_preload on; 。当nginx检测到 link 响应首部时,会主动往客户端推送资源。

location ~ \.php$ {
  # ...省略其他配置
  http2_push_preload on; # 加上这行
}

修改WordPress主题

NGINX的 http2_push_preload 需要应用服务的配合。比如我要主动推送 index.js 这个文件,那么需要加上如下响应首部:

link: </index.js>; as=script; rel=preload

也可以同时推送多个文件,比如:

link: </index.js>; as=script; rel=preload, </index.css>; as=style; rel=preload

具体到WordPress,可以加上如下代码:

function add_http2_push_header() {
  $preload_resource_array = array(
    '</index.js>; as=script; rel=preload',
    '</index.css>; as=style; rel=preload'
  );
  $preload_link_value = join( ', ', $preload_resource_array );

  header( 'link: '.$preload_link_value ); 
}
add_action( 'send_headers', 'add_http2_push_header' );

浏览器验证

升级之前,不支持服务端推送。

升级之后,支持服务端推送。

 

相关链接

https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#prebuilt_redhat

https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/

http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push_preload

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link

上一篇:Linux服务器下nginx的安全配置详解

栏    目:Nginx

下一篇:浅析Nginx配置文件中的变量的编写使用

本文标题:升级nginx支持HTTP/2服务端推送的方法

本文地址:http://www.codeinn.net/misctech/34602.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有