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:2nginx: configuration file /etc/nginx/nginx.conf test failed
nginx 安装或升级
在 CentOs 系统或者 Red Hat 系统中配置 nginx 的 yum 源
$ vi /etc/yum.repos.d/nginx.repo
[nginx]name=nginx repobaseurl=http://nginx.org/packages/mainline/centos/7/$basearch/gpgcheck=0enabled=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");})();