MIDDLEWARE
在 Nginx 1.25+ 中开启 HTTP/3
对于Nginx来说,在编译时需要配置对于的SSL库,不管是HTTP3.0还是HTTP2.0,始终都要基于HTTPS,而加密算法这块主要有OpenSSL来提供,而BoringSSL是谷歌创建的OpenSSL分支,用于支持TLS1.3的UDP协议0-RTT数据传输的加密算法(可以理解成TLS 1.3是标准协议,BoringSSL是实现工具),BoringSSL的一些特性会在合适的时机同步给OpenSSl。Nginx从1.25.0开始支持QUIC和HTTP/3协议。此外,从1.25.0开始,Linux二进制包中提供了QUIC和HTTP/3支持 QUIC和HTTP/3支持是实验性的 安装BoringSSL证书 官方推荐了3种SSL库,参考文档https://nginx.org/en/docs/quic.html 我这里使用BoringSSL 使用 BoringSSL 编译 NGINX,需要满足以下要求: gcc 版本大于6 编译BoringSSL 需要go环境支持 cmake 3版本以上 升级cmake: workon py_env #yum install ninja-build pip install -U cmake 升级gcc至8: 添加源:
1 2 3 4 5 6 7 8 |
vi /etc/yum.repos.d/CentOS-SCLo-scl.repo [centos-sclo-sclo] name=CentOS-7 - SCLo sclo baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/rh/ #mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo |
yum install devtoolset-8 激活:source /opt/rh/devtoolset-8/enable 此时通过gcc –version命令可以看到,gcc版本已经变成8.x.x,值得注意的是这仅仅在当前bash生效,如果需要永久生效,可以请自行添加环境变量。 golang安装: wget https://golang.google.cn/dl/go1.21.4.linux-amd64.tar.gz tar -C /usr/local/ -zxvf go1.21.4.linux-amd64.tar.gz 拉取BoringSSL源码 git Read more…