Nginx开启HTTP/2支持

in 技术分享 with 0 comment

什么是HTTP/2

HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。

针对HTTP/1.x的优化

  1. HTTP/2 是复用了一个 TCP 连接进行多次传输,也就是异步连接复用

  2. HTTP/2 会适度地合并资源文件,也就是头压缩

  3. HTTP/2 的 Server Push 特性允许服务器充分利用带宽,并按一定的优先次序向客户端推送资源,也就是请求反馈管线化

  4. 与HTTP 1.1的完全语义兼容

启用HTTP/2的条件

HTTP/2的支持情况

目前支持 HTTP/2 的浏览器有 Chrome 41+、Firefox 36+、Safari 9+、Windows 10 上的 IE 11 和 Edge

配置HTTP/2

我们假设你已经完成了HTTPS的部署,首先升级openssl,我会推荐使用最新的openssl-1.1.0e,另外以下代码是我的测试环境,基于Centos7,其他发行版请自行转换命令,还要注意文件的路径。

service nginxd stop #停止Nginx服务
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz #下载openssl
wget http://nginx.org/download/nginx-1.10.3.tar.gz #下载nginx
tar zxfv openssl-1.1.0e.tar.gz #解压openssl
tar zxfv nginx-1.10.3.tar.gz #解压nginx
yum install zlib #安装zlib
yum install zlib-devel #安装zlib开发包
/www/wdlinux/nginx-1.10.3/sbin/nginx -V #查看当前nginx配置,路径自己替换

会返回如下的配置信息,请复制备用

    ./configure --user=www --group=www --prefix=/www/wdlinux/nginx-1.10.3 --with-http_stub_status_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_ssl_module
mv /www/wdlinux/nginx-1.10.3 /www/wdlinux/nginx-1.10.3.bak #备份当前nginx
cd nginx-1.10.3
#在获取的配置后面添加openssl、http2配置项
./configure --user=www --group=www --prefix=/www/wdlinux/nginx-1.10.3 --with-http_stub_status_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_ssl_module --with-http_v2_module --with-openssl=/home/downloads/src/openssl-1.1.0e
make && make install #编译

等待编译完成,修改站点配置文件重启nginx即可

server {
listen 443 ssl http2 default_server;

ssl_certificate    server.crt;
ssl_certificate_key server.key;
...
}

本文部分内容摘自Chakhsu的博客,原文地址:https://www.linpx.com/p/enable-http2-support.html

Responses