使用 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 特性。