使用 HTTP/3

启用 TLSv1.3 协议支持

HTTP/3 需要在 全局配置/通用 中启用 TLSv1.3 的协议支持

Screenshot

配置 HTTP/3

全局配置/集群分区 中,为分区中添加 HTTP/3 的监听端口。因为 HTTP/3 监听的是 UDP 端口,这里添加和 HTTPS 相同的 443 端口。

注意:请确认安全防火墙是否开放了 443 UDP 端口。

Screenshot

Screenshot

端口配置完成之后,通过页面规则添加 Alt-Svc 响应头。告诉客户端当前提供 HTTP/3 服务的端口。

Alt-Svc 响应头格式如下:

Alt-Svc: <protocol-id>=<alt-authority>; ma=<max-age>

Example:

Alt-Svc: h3-25=":443"; ma=3600
Alt-Svc: h3=":443"; ma=3600, h3-25=":443"; ma=3600, h3-29=":443"; ma=3600

我们刚刚添加的 HTTP/3 端口为 443,因此这里可以填写 h3=":443"; ma=3600, h3-25=":443"; ma=3600, h3-29=":443"; ma=3600

Screenshot

验证 HTTP/3

配置完成后,我们可以通过 cURL 指定 HTTP/3 协议验证现有的应用。

例如:

# 需要编译支持 HTTP/3 的 curl, 可以参考这个文档: https://curl.se/docs/http3.html
curl -i --http3 https://your-domain.com/

curl -i --alt-svc altsvc.cache https://your-domain.com/

# 还可以直接使用 Docker 镜像中的 curl
sudo docker run -it --rm ymuski/curl-http3 curl -i --http3 https://your-domain.com/

注意:如果要在浏览器上验证 HTTP/3,确保浏览器已经启用 HTTP/3 特性。