HTTP/2 (原名HTTP/2.0)即超文本传输协议 2.0,是下一代HTTP协议。在开放互联网上HTTP 2.0将只用于https://网址,而 http://网址将继续使用HTTP/1,目的是在开放互联网上增加使用加密技术,以提供强有力的保护去遏制主动攻击。更多http2的优势

HTTP/2 要求 Nginx 的版本最低为1.9.5,低版本没有http/2的支持,并报如下错误,所以必须升级nginx

nginx: [emerg] invalid parameter "http2" in /etc/nginx/conf.d/ssl.conf:2
nginx: configuration file /etc/nginx/nginx.conf test failed

nginx安装或升级

在CentOs系统或者Red Hat系统中配置nginx的yum源

$ vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

如果已经安装,执行yum clean all && yum update nginx,未安装执行yum install nginx

执行nginx V得到如下结果

开启http2

开启http2只需要在conf文件添加http2配置即

server {
  listen        443 ssl http2;
  ...
}

openssl版本过低也会导致http2开启无效,如果版本过低必须更新openssl版本

浏览器检测网站是否开启http2

(function(){
    // 保证这个方法只在支持loadTimes的chrome浏览器下执行
    if(window.chrome && typeof chrome.loadTimes === 'function') {
        var loadTimes = window.chrome.loadTimes();
        var spdy = loadTimes.wasFetchedViaSpdy;
        var info = loadTimes.npnNegotiatedProtocol || loadTimes.connectionInfo;
        // 就以 「h2」作为判断标识
        if(spdy && /^h2/i.test(info)) {
            return console.info('本站点使用了HTTP/2');
        }
    }
    console.warn('本站点没有使用HTTP/2');
})();

参考文章

https://www.phpsong.com/2818.html
https://blog.fazero.me/2017/01/06/upgrate-nginx-and-use-http2/
http://nginx.org/en/docs/http/ngx_http_v2_module.html

本文为原创,未经授权,禁止任何媒体或个人自媒体转载
商业侵权必究,如需授权请联系[email protected]
标签: nginx