一. QUIC 是什么
QUIC 是 Quick UDP Internet Connections 的缩写,谷歌发明的新传输协议。与 TCP 相比,QUIC 可以减少延迟。由于 QUIC 建立在 UDP 之上,QUIC 可以实现可靠传输,而且相比于 TCP,它的流控功能在用户空间而不在内核空间,那么使用者就 不受限于 CUBIC 或是 BBR,而是可以自由选择,甚至根据应用场景自由调整优化。
QUIC 与现有 TCP + TLS + HTTP/2 方案相比,有以下几点主要特征:
- 利用缓存,显著减少连接建立时间
- 改善拥塞控制,拥塞控制从内核空间到用户空间
- 没有 head of line 阻塞的多路复用
- 前向纠错,减少重传
- 连接平滑迁移,网络状态的变更不会影响连接断线。
QUIC 在 UDP 之上,如果想要和 TCP/IP 体系类比,那么就是上图。QUIC 可以类比 TCP/IP 中的 TLS 一层。但是功能又不完全是 TLS ,还有一部分 HTTP/2 ,下面还包括一部分 TCP 的功能,比如 拥塞控制、丢包恢复、流量控制等特性。
二. 为什么要部署 QUIC
最重要的一点还是速度快,小站部署在国外服务器上面,前端机开启了反向代理,但是速度还是不够理想。于是乎套了CDN,国内访问速度快了很多。
三. 实现 QUIC 前置条件
1、防火墙配置:允许 443 端口接收 UDP 数据包,防火墙将443端口UDP开放;宝塔在面板-左侧安全里面配置;
腾讯云 / 阿里云 / 华为云 等 添加安全组即可。
2、在 Nginx 站点配置文件里添加listen 443 quic reuseport;来增加监听来增加监听 443 端口的 UDP 协议;
3、 在所有的 server 域中,只需要有一个 server 域中配置 reuseport 选项即可
listen 443 ssl; listen 443 quic reuseport; listen [::]:443 ssl; listen [::]:443 quic reuseport; http2 on;
其他的 如下配置即可
listen 443 ssl; listen 443 quic; listen [::]:443 ssl; listen [::]:443 quic; http2 on;
4、打开浏览器控制台,刷新页面,在 调试面板 network 选项 ,protocl 栏 显示 h3 表示开启成功
5、响应头里包含: Alt-Svc: h3=”:443″; ma=2592000,h3-29=”:443″; ma=2592000
6、在站点的Nginx配置文件 大概26 27行添加以下代码:
#开启 HTTP/3 QUIC 支持 ssl_early_data on; add_header Alt-Svc 'h3=":443"; ma=86400'; add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000'; //谷歌官网的简单模式 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"'; add_header alt-svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000, h3-Q046=":443"; ma=2592000, h3-Q043=":443"; ma=2592000, quic=":443"; ma=2592000; v="43,46"'; //LiteSpeed服务器模式
7、nginx 版本大于等于 1.25
listen 443 ssl; listen 443 quic reuseport; listen [::]:443 ssl; listen [::]:443 quic reuseport; http2 on; add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000';
然后重启 Nginx即可生效。
四.HTTP3/QUIC配置结果检测地址
http3check.net
https://http3.wcode.net
https://domsignal.com/http3-test
五.参考文档
LNMP 环境下 Nginx 1.26.0 开启 HTTP/3 QUIC 支持
Nginx 基于 QUIC 启用 HTTP/3 协议
nginx 配置 http3 (quic 协议基于UDP)
Support for QUIC and HTTP/3
Enabling QUIC / http/3 on multiple domains with NGINX 1.25
caddy 作为反向代理 proxy 来转发
使用 LiteSpeed 轻松为网站开启 HTTP/3 实践
评论前必须登录!
注册