Nginx配置开启HTTP2支持

Note:

  • 具体使用的HTTP版本可通过浏览器控制台查看。

2021-03-16-HTTPVersion.png

  • 检测下自己的网站是否支持HTTP2:

2021-03-16-NginxHTTP2No.png

  • 关于HTTP/2和HTTP/1速度对比

2021-03-16-HTTP1VSHTTP2.gif

环境要求

  1. Nginx的版本必须在1.9.5以上,该版本的Nginx使用http_v2_module模块替换了ngx_http_spdy_module;

  2. 开启https加密,目前http2.0只支持开启了https的网站;

  3. openssl的版本必须在1.0.2e及以上;

Note:SPDY源自Google,在2010年发布,取自SPeeDY(音同speedy)。

Nginx配置

server {

listen 443 ssl http2;

server_name www.abc.com;

ssl_certificate /opt/cert/3823818_www.abc.com.pem;

ssl_certificate_key /opt/cert/3823818_www.abc.com.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

location / {

proxy_pass https://127.0.0.1:9999;

proxy_set_header Host $host;

}

}

至于后端 SpringBoot 服务支持 HTTP2 ,可直接采用 Undertow 作为Web容器。

开启HTTP2之后,再次检测自己网站对HTTP2的支持情况:

在这里插入图片描述

可能遇到的问题

  • 开启HTTPS时报错

nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:42

参考这里解决。

  • Nginx配置HTTPS

参考入门Nginx之-代理HTTPS,HTTP强制转HTTPS

  • openssl的版本过低

若版本低于1.0.2e,进行以下升级过程:

下载

wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz

解压

tar zxvf openssl-1.0.2r.tar.gz

进入

cd openssl-1.0.2r

配置

./config

编译

make

安装

make install

#备份旧的命令

mv /usr/bin/openssl /usr/bin/openssl.old

mv /usr/include/openssl /usr/include/openssl.old

添加软连接

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/ssl/include/openssl /usr/include/openssl

写入openssl库文件的搜索路径

echo “/usr/local/ssl/lib” >> /etc/ld.so.conf

使修改后的搜索路径生效

ldconfig

再次查看openssl版本,确认是否更新

openssl version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值