宝塔目前编译使用的OpenSSL版本都是1.1.1,以目前最新NGINX 1.28.0 为例,使用nginx -V可查看编译详情

Nginx 启用 HTTP3 而言,OpenSSL 1.1.1q 可以使用,但出于兼容性与性能优化考虑,建议将它替换成 OpenSSL 4.0+ 或 BoringSSL(由 Google 维护的 OpenSSL 分支)
使用 OpenSSL 4.0+ 相比于 OpenSSL 1.1.1,对 QUIC 的支持确实有了显著的提升,主要体现在以下几个方面:
综上所述,OpenSSL 3.3 在 QUIC 支持上不仅提供了更全面的功能,还在性能优化、调试便利性以及跨平台兼容性方面取得了进步。
该方法属于重新编译NGINX,不支持在原有版本进行升级,还请卸载原有的NGINX软件。
cd /www/server
git clone https://github.com/openssl/openssl.git
#下载缓慢用这个
git clone https://ghfast.top/https://github.com/openssl/openssl.gitcd /www/server/panel/install
wget -O zbynginx.sh https://dg2.bt.cn/install/3/nginx.sh编辑 zbynginx.sh 文件(可使用面板自带的编辑器),搜索关键词if [ -z "${GMSSL}" ]; then快速定位:

将
if [ -z "${GMSSL}" ]; then
TLSv13_NGINX=$(echo ${nginxVersion} | tr -d '.' | cut -c 1-3)
if [ "${TLSv13_NGINX}" -ge "115" ] && [ "${TLSv13_NGINX}" != "181" ]; then
opensslVer="1.1.1w"
else
opensslVer="1.0.2u"
fi
# if [ "$version" == "1.23" ];then
# opensslVer="3.0.5"
# fi
wget -O openssl.tar.gz ${download_Url}/src/openssl-${opensslVer}.tar.gz
tar -xvf openssl.tar.gz
mv openssl-${opensslVer} openssl
rm -f openssl.tar.gz
elseif [ -z "${GMSSL}" ]; then
TLSv13_NGINX=$(echo ${nginxVersion} | tr -d '.' | cut -c 1-3)
if [ "${TLSv13_NGINX}" -ge "115" ] && [ "${TLSv13_NGINX}" != "181" ]; then
opensslVer="1.1.1w"
else
opensslVer="1.0.2u"
fi
# if [ "$version" == "1.23" ];then
# opensslVer="3.0.5"
# fi
wget -O openssl.tar.gz ${download_Url}/src/openssl-${opensslVer}.tar.gz
tar -xvf openssl.tar.gz
mv openssl-${opensslVer} openssl
rm -f openssl.tar.gz
else替换为
if [ -z "${GMSSL}" ]; then
cp -r /www/server/openssl .
cd openssl
./config
make
cd ..
else保存后,执行以下指令编译安装 Nginx。
sh zbynginx.sh install 1.28这里选择的是 1.28 版,这是当前 Nginx 支持 HTTP3 最新的版本,这个具体看自己需要。注意后面的小版本号不要输入,当前输入 1.28即等于 1.28.0 版。
安装完成后,使用 nginx -V 查看编译详情

以后如 Nginx 发布了新的稳定版,则需要重新下载宝塔原版的 Nginx 安装脚本再按本教程方法修改后安装,除非宝塔官方升级了安装脚本中的 OpenSSL 版本就无需修改了。
这里升级的 OpenSSL 版本仅适用于 Nginx,并不改变服务器操作系统中的版本。
因 OpenSSL 4.0.0 及以上版本发布不久,为了确保兼容性,建议升级至较新的服务器系统与相关软件。
启用 HTTP3 的同时建议启用 Brotli 压缩。
有关于 ngx_http_v3_module 详细介绍可参考:[Nginx 的官方文档]。
如果是 Nginx 1.26+,可将宝塔站点配置中的参数做如下调整:
add_header Alt-Svc 'quic=":443"; h3=":443"; h3-29=":443"; h3-27=":443";h3-25=":443"; h3-T050=":443"; h3-Q050=":443";h3-Q049=":443";h3-Q048=":443"; h3-Q046=":443"; h3-Q043=":443"';
改为:
add_header Alt-Svc 'h3=":443"; ma=86400,h3-29=":443"; ma=86400,h3-Q050=":443"; ma=86400,quic=":443"; ma=86400; v="46,43"';升级 OpenSSL 版本后建议添加:
ssl_early_data on;该指令可以在 server 块中,例如:加在 ssl_session_timeout 指令下方。
如服务器的性能较强,CPU 与内存足够,还可以在 http 块(即宝塔面板>Nginx>设置>配置修改)中添加以下指令:
http3_max_concurrent_streams 256;
http3_stream_buffer_size 128k;http3_max_concurrent_streams 这个指令是用来限制在单个 HTTP/3 连接上可以同时处理的最大流数量。默认值 128 意味着一个单一的 HTTP/3 连接可以同时承载最多 128 个双向数据流。
http3_stream_buffer_size 指令用于设置 HTTP/3 流的缓冲区大小。这个缓冲区用于存储待发送或已接收但尚未处理的数据。其默认值为 64k,增加缓冲区大小可以减少 I/O 操作的频率,可能对性能有所提升,特别是在处理大块数据传输时。
不过需要注意的是:这两个参数的值越大,占用的内存较多。
—— 评论区 ——