启用 HTTP/3

启用 TLSv1.3 协议支持

首先需要在 全局配置/通用 中确保已启用 TLSv1.3 协议支持

Screenshot

配置 HTTP/3

全局配置/集群分区 中,需要为分区添加 HTTP/3 监听端口。由于 HTTP/3 使用 UDP 协议,这里添加与 HTTPS 相同的 443 端口。

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

Screenshot

Screenshot

在 HTTP/3 端口配置完成之后,通过页面规则添加 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

完成配置后,您可以通过以下几种方式验证 HTTP/3 是否正常工作:

使用 cURL 验证

注意:需要使用支持 HTTP/3 的 cURL 版本。您可以参考官方文档:https://curl.se/docs/http3.html

  1. 直接使用 HTTP/3 协议:
curl -i --http3 https://your-domain.com/

HTTP/3 200
date: Fri, 28 Mar 2025 03:13:10 GMT
content-type: text/plain
req-id: 0000008000046ce4ce30000b
  1. 通过 Alt-Svc 自动协议升级:
curl -i --alt-svc altsvc.cache https://your-domain.com/

# 首次请求(HTTP/1.1)
HTTP/1.1 200 OK
Date: Fri, 28 Mar 2025 03:16:47 GMT
Content-Type: text/plain
alt-svc: h3=":443"; ma=3600, h3-25=":443"; ma=3600, h3-29=":443"; ma=3600

# 再次请求(自动升级至 HTTP/3)
HTTP/3 200
date: Fri, 28 Mar 2025 03:16:48 GMT
content-type: text/plain

使用 Docker 容器验证

如果您没有安装支持 HTTP/3 的 cURL,可以使用预配置的 Docker 镜像:

docker run -it --net=host --rm ymuski/curl-http3 curl -i --http3 https://your-domain.com/

浏览器验证

主流浏览器(如 Chrome、Firefox、Edge)均已支持 HTTP/3。您可以通过浏览器的开发者工具查看网络请求的协议版本。请确保浏览器已启用 HTTP/3 功能支持。