启用 HTTP/3
启用 TLSv1.3 协议支持
首先需要在 全局配置
/通用
中确保已启用 TLSv1.3 协议支持
配置 HTTP/3
在 全局配置
/集群分区
中,需要为分区添加 HTTP/3 监听端口。由于 HTTP/3 使用 UDP 协议,这里添加与 HTTPS 相同的 443 端口。
注意:请确认安全防火墙是否开放了 443 UDP 端口。
在 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
。
验证 HTTP/3
完成配置后,您可以通过以下几种方式验证 HTTP/3 是否正常工作:
使用 cURL 验证
注意:需要使用支持 HTTP/3 的 cURL 版本。您可以参考官方文档:https://curl.se/docs/http3.html
- 直接使用 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
- 通过 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 功能支持。