CentOS 7系统 Nginx 开启 HTTP2/TLS1.3 支持

我们以Nginx 1.18.0为例子,手动编译升级Nginx,使Nginx支持HTTP2和TLS 1.3。

一、准备编译环境

1、检查 OpenSSL 版本

由于 TLS 1.3 需要 OpenSSL 1.1.1 或更高的版本支持,所以为了确保TLS1.3的正常运行,先检查 OpenSSL 版本

openssl version

OpenSSL 1.0.2k-fips 26 Jan 2017

如果低于 OpenSSL 1.1.1,请参考 https://www.24kplus.com/linux/97.html 升级 OpenSSL

2、安装依赖库

yum -y install libxml2 libxml2-devel libxslt-devel gd-devel gperftools libuuid-devel libblkid-devel libudev-devel fuse-devel libedit-devel libatomic_ops-devel gcc-c++

如果要启用 GeoIP2 模块,还需要安装 libmaxminddb;启用 IP2Location 模块需要安装 IP2Location C Library

3、获取上一次编译的参数

nginx -V

把红色框框的参数拷贝出来,后面会用到。

二、下载&编译&升级

1、下载解压

wget https://nginx.org/download/nginx-1.18.0.tar.gz
tar -xvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

2、配置编译参数

把原版本编译参数(上面拷贝出来的)粘贴上去,如果 --with-http_v2_module 参数没有则在最后加入一行 --with-http_v2_module

./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib64/nginx/modules
......
--with-http_v2_module

3、编译

make

4、升级 Nginx

停止 Nginx 服务

systemctl stop nginx

备份旧版本 Nginx

注意:sbin实际路径可能和教程的不一样,具体路径看 nginx -V 命令输出的 --sbin-path 参数

cp /usr/sbin/nginx /usr/sbin/nginx.bak

拷贝新版本到 /usr/sbin

cp objs/nginx /usr/sbin/

开始升级 Nginx

make upgrade

最后,启动 Nginx

systemctl start nginx

5、检查升级结果

nginx -V