Nginx支持quic协议及gcc版本升级

本文详细介绍了如何通过Nginx官方的nginx-quic分支和BoringSSL来实现HTTP3通信,包括下载和编译BoringSSL,安装Cmake和Go,升级GCC,以及配置和启动Nginx。另外,还提到了使用Cloudflare的quiche作为替代方法。
第一种方式:Nginx官方nginx-quic搭建

通过部署Nginx官方的QUIC分支来实现的浏览器和nginx-quic服务器粗略的HTTP3通信。
1、下载BoringSSL
BoringSSL 是由谷歌开发,从 OpenSSL 中分离的一个分支。BoringSSL 是 Chrome/Chromium、Android(但它不是 NDK 的一部分)和许多其他应用程序/程序中的 SSL 库。

由于nginx quic版本使用了新的tls1.3协议,需要openssl支持quic,但目前的openssl版本没有对应的支持,所以这里使用google的boringssl。

## 下载代码
git clone https://github.com/google/boringssl.git 
## 编译代码
 cd boringssl
 mkdir build
 cd build
 cmake ..
 make

2,Cmake命令下载安装,要求安装3.0以上版本

wget https://cmake.org/files/v3.24/cmake-3.24.3.tar.gz
tar zxvf cmake-3.24.3.tar.gz
cd cmake-3.24.3
./bootstrap --prefix=/usr/local/
make && make install

3,安装BoringSSL 要求go版本为1.19

1,删除旧版本go环境
rm -rf /usr/local/go
2,wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz
3,tar -C /usr/local/ -zxvf go1.1.19.linux-amd64.tar.gz (官方推荐解压到/usr/local/目录下)
4,配置环境变量 vi /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin 
使修改文件生效 source /etc/profile
5,查看版本 go version
6,如果不生效
   cd /usr/bin/
   rm go gofmt
   
要基于 OpenSSL - QUIC 3.1.7 编译支持 HTTP/3 的 Nginx 版本,可按以下步骤操作: ### 1. 安装依赖 在开始编译之前,需要安装一些必要的依赖库,这些库用于编译 Nginx 和 OpenSSL。在不同的系统中,安装命令可能有所不同。以 Ubuntu 为例: ```bash sudo apt-get update sudo apt-get install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev ``` ### 2. 下载 OpenSSL - QUIC 3.1.7 从 OpenSSL 的官方仓库或者其他可靠源下载 OpenSSL - QUIC 3.1.7 的源代码: ```bash wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1t.tar.gz tar -zxvf OpenSSL_1_1_1t.tar.gz cd openssl-OpenSSL_1_1_1t ``` ### 3. 编译和安装 OpenSSL - QUIC 3.1.7 配置、编译并安装 OpenSSL: ```bash ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl enable-tls1_3 enable-ec_nistp_64_gcc_128 make sudo make install ``` ### 4. 下载 Nginx 源代码 从 Nginx 官方网站下载最新的稳定版本: ```bash wget https://nginx.org/download/nginx-1.25.4.tar.gz tar -zxvf nginx-1.25.4.tar.gz cd nginx-1.25.4 ``` ### 5. 配置 Nginx 编译选项 使用 `./configure` 命令配置 Nginx 的编译选项,指定使用刚刚编译安装的 OpenSSL 库,并开启 HTTP/3 支持: ```bash ./configure --prefix=/usr/local/nginx \ --with-openssl=../openssl-OpenSSL_1_1_1t \ --with-http_v3_module \ --with-http_ssl_module \ --with-stream \ --with-stream_ssl_module \ --with-stream_quic_module ``` ### 6. 编译和安装 Nginx ```bash make sudo make install ``` ### 7. 验证安装 安装完成后,可以验证 Nginx 是否成功支持 HTTP/3: ```bash /usr/local/nginx/sbin/nginx -V ``` 输出信息中应该包含 `--with-http_v3_module` 和 `--with-stream_quic_module` 等相关信息。 ### 8. 配置 Nginx 支持 HTTP/3 编辑 Nginx 配置文件 `/usr/local/nginx/conf/nginx.conf`,添加或修改以下内容: ```nginx server { listen 443 ssl http3; server_name example.com; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.pem; ssl_protocols TLSv1.3; ssl_prefer_server_ciphers on; # 其他配置项... } ``` ### 9. 启动 Nginx ```bash /usr/local/nginx/sbin/nginx ``` ### 注意事项 - 确保系统中已经安装了必要的编译工具和依赖库。 - 在配置 Nginx 时,需要提供有效的 SSL 证书和私钥。 - 如果在编译过程中遇到问题,可以参考 Nginx 和 OpenSSL 的官方文档进行排查。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值