使用 HTTP/3
安装
由于 HTTP/3 特性还未合入到我们的主线版本,如果需要使用 HTTP/3,需要在安装节点时指定安装支持 HTTP/3 的版本。
注意:如果机器上之前安装过主线版本的节点,要先在 Admin 上移除这个节点,然后卸载主线版本再进行安装。
HTTP/3 版本的安装方式和主线版本安装类似,只需要在执行安装脚本时指定 h3
参数:
sudo /bin/bash install-edge-node.sh h3
升级和降级操作也类似,在执行脚本时指定 h3
参数:
sudo /bin/bash upgrade-edge-node.sh h3
# OLD-PACKAGE-VERSION: downgrade to this version
sudo /bin/bash downgrade-edge-node.s OLD-PACKAGE-VERSION h3
其他步骤可以参考 Edge 安装文档。
启用 TLSv1.3 协议支持
HTTP/3 需要在 全局配置
/通用
中启用 TLSv1.3 的协议支持
配置 HTTP/3
在 全局配置
/集群分区
中,为分区中添加 HTTP/3 的监听端口。因为 HTTP/3 监听的是 UDP 端口,这里添加和 HTTPS 相同的 443 端口。
注意:请确认安全防火墙是否开放了 443 UDP 端口。
端口配置完成之后,通过页面规则添加 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
。
验证 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 特性。