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