网站建设购买什么境外主机,南昌网站建设包括哪些,哪些人不适合学电子商务专业,超炫酷个人引导页源码第一种方式#xff1a;Nginx官方nginx-quic搭建
通过部署Nginx官方的QUIC分支来实现的浏览器和nginx-quic服务器粗略的HTTP3通信。 1、下载BoringSSL BoringSSL 是由谷歌开发,从 OpenSSL 中分离的一个分支。BoringSSL 是 Chrome/Chromium、Android#xff08;但它不是 NDK 的…第一种方式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 boringsslmkdir buildcd buildcmake ..make2Cmake命令下载安装要求安装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 install3安装BoringSSL 要求go版本为1.19
1删除旧版本go环境
rm -rf /usr/local/go
2wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz
3tar -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 gofmtcd /usr/local/go/bincp go* /usr/bin/4安装更高版本的gcc gcc 4.8 的漏洞在gcc 4.9已经修复之前使用11.1.0不成不知道是不是自己的原因后改换gcc 8.1.0 gcc官网 https://gcc.gnu.org/ 下载地址: http://ftp.gnu.org/gnu/gcc/
1解压
tar -zxvf gcc-8.1.0.tar.gz
2查看安装前依赖的软件包
cd gcc-8.1.0/
vim contrib/download_prerequisites3下载对应依赖包 可以直接执行yum groupinstall “Development Tools” 下载然后安装 也可以分别下载安装选择需要的版本 https://ftp.gnu.org/gnu/gmp/ https://ftp.gnu.org/gnu/mpfr/ https://ftp.gnu.org/gnu/mpc/ https://gcc.gnu.org/pub/gcc/infrastructure/ 4安装顺序GMPmpfr mpcisl 。最后安装gcc 5原来旧版本的gcc不能先卸载否则安装过程报错 6安装gmp $ tar -jxvf gmp-6.1.0.tar.bz2$ cd gmp-6.1.0$ mkdir temp$ cd temp$ ../configure --prefix/usr/local/gmp-6.1.0 -----指定安装目录$ make$ make install7安装mpfr $ tar -zxvf mpfr-3.1.4.tar.gz $ cd mpfr-3.1.4$ mkdir temp$ cd temp$ ../configure --prefix/usr/local/mpfr-3.1.4 --with-gmp/usr/local/gmp-6.1.0$ make$ make install其中--with/usr/local/gmp-6.1.0就是依赖项 /usr/local/gmp-6.1.0是gmp的安装目录8安装mpc $ tar -zxvf mpc-1.0.3.tar.gz$ cd mpc-1.0.3$ mkdir temp$ cd temp$ ../configure --prefix/usr/local/mpc-1.0.3 --with-gmp/usr/local/gmp-6.1.0 --with-mpfr/usr/local/mpfr-3.1.4$ make$ make install记得后面两项的依赖项也就是你的gmp和mpfr的安装目录9安装islisl只依赖gmp $ tar -zxvf isl-0.18.tar.bz2$ cd isl-0.18$ mkdir temp$ cd temp../configure --prefix/usr/local/isl-0.18 --with-gmp/usr/local/gmp-6.1.0$ make$ make install安装isl报错安装yum install gmp-devel.x86_64执行成功 10安装gcc
$ cd ..
$ tar -zxvf gcc-8.1.0.tar.gz
$ cd gcc-8.1.0
$ ./configure --prefix/usr/local/gcc-8.1.0 --enable-threadsposix --disable-checking --disable-multilib --enable-languagesc,c --with-gmp/usr/local --with-mpfr/usr/local --with-mpc/usr/local
$ make make install echo say ok
编译安装过程一个多小时
卸载旧版本编译器
$ yum remove gcc gcc-c
$ ln -s /usr/local/gcc-8.1.0/bin/c /usr/bin/c
$ ln -s /usr/local/gcc-8.1.0/bin/g /usr/bin/g
$ ln -s /usr/local/gcc-8.1.0/bin/gcc /usr/bin/gcc
添加环境变量修改profile文件在最末添加如下两句
$ vim /etc/profile
LD_LIBRARY_PATH/usr/local/gcc-8.1.0/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
$ source /etc/profile
cp /usr/local/gcc-11.1.0/lib64/libstdc.so.6 /usr/lib64/11编译其他软件时报错checking for C compiler … not found 解决 ./auto/configure --with-cc/usr/bin/gcc 12如果依然有错误找不到gcc 在/root/.bashrc中添加gcc的路径 vim /root/.bashrc 同样把export PATH$PATH:/usr/local/arm/4.3.2/bin添加到文件中 立即更新有效source /root/.bashrc 5下载Nginx的QUIC版
官网下载http://hg.nginx.org/nginx-quic
cd nginx-quic
./auto/configure --with-debug --with-http_v3_module \--with-cc-opt-I/root/tengine/boringssl/include \--with-ld-opt-L/root/tengine/boringssl/build/ssl \-L/root/tengine/boringssl/build/cryptomake make install6对编译好的nginx进行配置启动
server {listen 8443 quic reuseport;listen 8443 ssl;ssl_protocols TLSv1.2 TLSv1.3;ssl_certificate /usr/local/nginx123/ca.1way/server.crt;ssl_certificate_key /usr/local/nginx123/ca.1way/server.key;location / {proxy_pass http://serverpool;add_header Alt-Svc h3:8443; ma86400;}}upstream serverpool {server 192.168.159.144:8080;}
7访问服务器 使用火狐浏览器进行访问首先在火狐地址栏输入about:config 然后查找network.http.http3.enabled把false改为true重启浏览器
第二种方法使用cloudflare的quiche
参考链接 https://blog.cloudflare.com/experiment-with-http-3-using-nginx-and-quiche/ https://kbsml.com/?p67 % curl -O https://nginx.org/download/nginx-1.16.1.tar.gz% tar xvzf nginx-1.16.1.tar.gz% git clone --recursive https://github.com/cloudflare/quiche% cd nginx-1.16.1% patch -p01 ../quiche/extras/nginx/nginx-1.16.patch% ./configure \--prefix$PWD \--with-http_ssl_module \--with-http_v2_module \--with-http_v3_module \--with-openssl../quiche/deps/boringssl \--with-quiche../quiche% make make install
nginx文件配置同上 浏览器访问查看协议类型