Nginx配置支持HTTP/2

原创文章,禁止转载!

HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议。它由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组进行开发。[1]该组织于2014年12月将HTTP/2标准提议递交至IESG进行讨论[2],于2015年2月17日被批准。[3] HTTP/2标准于2015年5月以RFC 7540正式发表。

HTTP/2的目标包括异步连接复用,头压缩和请求反馈管线化并保留与HTTP 1.1的完全语义兼容。httpbis工作小组最初考虑了GoogleSPDY协议、微软SM协议[5]和Network-Friendly HTTP更新[6]Facebook对各方案进行了评价并最终推荐了SPDY协议[7]。HTTP 2.0的首个草稿于2012年11月发布,其内容基本和SPDY协议相同[8]

1. 版本要求

nginx版本必须大于1.9.5,nginx版本1.9.5之后提供HTTP/2支持
openssl版本为1.0.2后可用

请注意,通过TLS接受HTTP / 2连接需要“应用层协议协商”(ALPN)TLS扩展支持,仅在OpenSSL版本1.0.2 之后才可用
使用“下一协议协商”(NPN)TLS扩展用于此目的(自OpenSSL版本1.0.1起可用)不能保证工作。

检查nginx版本

[root@node75 ~]# nginx -v
nginx version: nginx/1.13.0

检查openssl版本

[root@node75 ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

2.安装编译

2.1 下载软件包

cd /data/install
wget http://nginx.org/download/nginx-1.13.0.tar.gz
wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
tar xvf nginx-1.13.0.tar.gz && tar xvf openssl-1.0.2l.tar.gz
cd nginx-1.13.0/ 
#需要高版本openssl
./configure  --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_v2_module --with-openssl=/data/install/openssl-1.0.2l
make && make install

编译完成后检查nginx版本

[root@node75 nginx-1.13.0]# nginx -V
nginx version: nginx/1.13.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) 
built with OpenSSL 1.0.2l  25 May 2017
TLS SNI support enabled
configure arguments: --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_v2_module --with-openssl=/data/install/openssl-1.0.2l

编译成功

 

3.配置示例

server  {
    listen       443 ssl http2;
    server_name www.tangshengyun.com;
    index index.jsp index.html index.htm;
    ssl on;

浏览器访问测试
测试使用chrome浏览器插件”HTTP/2 and SPDY indicator”进行测试,显示蓝色即为支持



欢迎留言