如何在NGINX中启用HTTP/2.0
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