如何在NGINX中启用HTTP/2.0

时间:2019-05-19 01:25:58  来源:igfitidea点击:

HTTP/2 (HTTP/2.0)是对HTTP/1协议的主要升级。
HTTP/2协议基于SPDY(通常称为speedy)。
一些关键的改进HTTP/2是:
服务器推送:服务器主动向客户端发送组件,客户端无需等待向服务器发送请求。
多路复用:通过捆绑多个HTTP请求从客户端发送到服务器,减少活动连接的数量。
加密:通过HTTP/1.1有效使用TLS协议在HTTP/2中进行加密。
HTTP头压缩:压缩头将减少额外请求到web服务器的开销。
本文将在CentOS / Red Hat/ Debian和Ubuntu系统上启用NGINX web服务器中的HTTP/2.0。

安装NGINX

nginx版本>=1.9.5支持HTTP/2协议。
所以请确保你的nginx版本是否支持HTTP/2协议。
如果你还没有安装Nginx或更旧的版本,使用以下方法之一安装或升级基于你的操作系统。

适用于CentOS / RedHat用户

首先创建一个yum存储库配置文件 /etc/yum.repos.d/nginx.repo
并在该文件中添加以下内容。

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

并使用以下命令安装它。

# yum install nginx

适用于Ubuntu用户

使用以下命令添加PPA,以便在Ubuntu系统上安装最新的Nginx版本。
这个PPA有nginx版本,支持HTTP/2协议。

$ echo "deb http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx" >> /etc/apt/sources.list
$ echo "deb-src http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx"  >> /etc/apt/sources.list

并使用以下命令安装它。

$ curl http://nginx.org/keys/nginx_signing.key | apt-key add -
$ sudo apt-get update
$ sudo apt-get install nginx

适用于Debian用户

使用以下命令添加PPA,以便在Debian系统上安装最新的Nginx版本。
这个PPA有nginx版本,支持HTTP/2协议。

$ echo "deb http://nginx.org/packages/mainline/debian/ `lsb_release -cs` nginx" >> /etc/apt/sources.list
$ echo "deb-src http://nginx.org/packages/mainline/debian/ `lsb_release -cs` nginx"  >> /etc/apt/sources.list

并使用以下命令安装它。

$ curl http://nginx.org/keys/nginx_signing.key | apt-key add -
$ sudo apt-get update
$ sudo apt-get install nginx

验证NGINX版本

在你的系统上成功安装Nginx版本后,确保你的Nginx >= 1.9.5。
早期版本不支持HTTP/2协议。

# nginx -v

nginx version: nginx/1.9.7

启用HTTP/2在NGINX

HTTP/2协议需要SSL/TLS虚拟主机。
如果没有启用SSL/TLS的网站,你就不能使用HTTP/2协议。
现在编辑你的网站虚拟主机,在listen部分添加http2关键字。

server {
  listen        443 ssl http2;
  server_name   exmple.com;

  location / {
      root   /var/www/example.com;
      index  index.html index.htm;
  }

  ssl on;
  ssl_certificate  /etc/nginx/ssl/example.com.crt;
  ssl_certificate_key   /etc/nginx/ssl/example.com.key;

}

验证HTTP / 2.0

使用以下在线工具测试网站上的HTTP/2支持。
https://tools.keycdn.com/http2-test