启用QUIC和HTTP/3,提升30%的性能!


什么是HTTP3/QUIC?

QUIC是一种新型的传输层协议,由Google主导开发,旨在提高互联网上数据传输的效率和安全性。它基于UDP协议构建,同时集成了TLS加密,以减少网络延迟并提供更好的性能。QUIC的全称是Quick UDP Internet Connections,意在创建快速、低延迟的网络连接。

它能够在无需任何调整的情况下,提升你的网络速度达到20%,尤其在网络环境较差时,速度提升可达30%以上;想象一种协议,它能够确保你在WiFi和移动数据之间切换时,网络连接依然稳定,直播流畅无卡顿,视频播放无需等待缓冲。

HTTP/3是基于QUIC的应用层协议。它在HTTP/2的技术上继续优化,减少报文体积。是下一代的http协议。

开始使用!

Nginx在1.25正式支持了QUIC和HTTP3。
宝塔面板可以直接一键安装。

修改配置文件。

安装Nginx后,我们需要设置每个网站的配置文件,告诉Nginx和浏览器该使用Http3了。
① 首先我们需要在listen 443 ssl;后新增一条:
listen 443 quic reuseport;

注意:reuseport在一个server里写就可以了,写多个可能会报错。

② 在SSL设置里启用TLS v1.3:
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
③ 在ssl最后增加这些:
ssl_early_data on;
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"';
就可以啦!感受http3的速度吧。

记得在安全组内放行443端口的udp选项!

如果不知道你的配置是否成功,可以使用https://http3check.net/ 来检查一波。

踩の坑

在安装后我遇到了UNKNOWN ARGUMENT Connection Upgrade 错误.
排查后发现是反向代理的问题,把所有反向代理删了才解决。。。
重载之后可能会收到[warn] : the "listen ... http2" directive is deprecated。这是因为Nginx在1.25.1以上弃用了listen 443 ssl http2这样的写法,删掉http2即可。
就可以啦!
不要额外安装Boring/Libressl!
用宝塔安装的Nginx1.25会自己安装BoringSSL. 我傻不拉几的自己又安装了一个libressl.Nginx直接噶了死活装不上。最后还原备份才消停了。