宝塔面板开启 HTTP/3 使用 QUIC 进行高性能传输

HTTP/3 的优势

背景故事

HTTP/3 是基于 QUIC 协议开发的。QUIC 是一种建立在 UDP 上的“超级连接”协议,而之前的 HTTP 主要依赖 TCP 进行传输。TCP 虽然可靠,但速度较慢,存在诸如慢启动、多次握手等问题。Google 为了解决 TCP 的这些缺点,开发了 QUIC,同时保留了 HTTP/2 的多路复用等功能。

过人之处

  1. 连接更快,延迟更低:传统的 HTTP 连接需要多次“握手”才能开始传输数据,尤其是 HTTPS,还需先完成 TLS 加密,这一过程会耗费大量时间。而 HTTP/3 的 QUIC 支持 0-RTT(零延迟)握手,即在首次连接后,再次访问时数据可直接发送,无需重复复杂的流程,从而减少了等待时间,提升了速度。
  2. 更稳定,不怕掉包:在 HTTP/2 中,若一个数据包丢失,整个 TCP 连接都会卡住,其他请求也会受到影响,这就是所谓的“队头阻塞”。对于不稳定的网络,如移动网络,这一问题尤为严重。HTTP/3 则不存在这一问题,QUIC 可将每条数据流分开管理,一个数据包的丢失不会影响其他流,网页加载更加流畅。
  3. 天生更安全:HTTP/3 集成了 TLS 加密,且采用的是最新的 TLS 1.3 版本。与 HTTP/2 不同,HTTP/3 将安全性融入其中,每个连接都默认加密,隐私保护更好,且减少了加密流程中的重复步骤,连接速度也更快。
  4. 特别适合移动网络:在使用手机上网时,网络切换较为频繁,如从 Wi-Fi 切换到 4G。传统的 TCP 连接在这种情况下很容易断开,需要重新连接。而 HTTP/3 的 QUIC 协议通过使用连接 ID,可在网络切换时保持原连接,无需重新连接,从而提高了连接的稳定性,非常适合移动场景。
  5. 降低服务器压力,省钱:虽然 HTTP/3 的实现比 HTTP/2 更为复杂,但它能提高服务器的处理效率,减少 CPU 消耗,提高带宽利用率,从而降低运营成本。对于内容分发网络(CDN)或流媒体服务等来说,这些改进能节省不少费用。
  6. 用户体验更棒:用户最直观的感受是网页加载更快,视频播放更顺畅,连接更稳定。HTTP/3 解决了旧 HTTP 的诸多痛点,连接快速、稳定且安全,为用户带来了更好的体验。

宝塔面板开启 HTTP/3 的步骤

确认 Nginx 版本

在宝塔面板首页找到 Nginx,确认其版本为 1.25.5 及以上。如果版本较低,可点击进入切换版本。

修改配置文件

进入 Nginx 的配置更改位置,插入以下配置:

ssl_early_data on;

注意:开启此项需确保项目能够防止重放攻击。

设置 SSL 版本

进入网站的高级设置,关闭 TLS 的旧版本(TLS 1.1 及之前的版本)。

开放 443 端口 UDP

进入安全设置,开启 443 的 UDP 端口。

进入云服务商开启端口

如果使用的是云服务器,需在云服务商处开启端口,即使之前已开启,也需再次检查,确保 443 的 UDP 端口已开启。

为需要的网站添加 QUIC 监听

在需要支持 HTTP/3 的网站中添加以下配置:

  • 第一次添加的网站:listen  443 quic reuseport;
  • 以后添加的网站:listen  443 quic;

如果服务器支持 IPv6,可通过添加以下两行来增加 IPv6 支持:

listen  [::]:443 ssl;
listen [::]:443 quic;

修改宝塔自带的 h3 配置

宝塔会为每个网站添加一行不带有 h3 的 h3 header,导致浏览器无法识别。需将其更改为:

add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"';

如果使用 Nginx 反代

如果使用 Nginx 反代而非本身的传输,需实现全链路 QUIC 传输,否则不支持。但可通过相关文章介绍的方法绕过此限制实现 HTTP/3 传输。

检测配置结果

可使用以下网站检测网站是否支持 HTTP/3:

浏览器支持

在浏览器中,可通过以下步骤查看是否使用 h3 传输:

  1. 按 F12 键进入控制台。
  2. 在网络标签中,右键点击传输数据的标题栏,开启协议。

若未使用 h3 传输,需检查以下几点:

  1. 确保使用的是最新版本的浏览器。
  2. 对于 Chromium 内核的浏览器,访问 chrome://flags,搜索 “QUIC”,启用 “Experimental QUIC protocol”。
  3. 如果使用了网络代理,系统代理的 HTTP 和 SOCKS5 无法转发 UDP 流量,需关闭代理,或者使用支持自动切换的代理插件,仅在需要的站点启用。

以上就是通过宝塔面板开启 HTTP/3 的详细教程,希望对大家有所帮助。

  • All rights reserved.
  • No part of this website, including text and images, may be reproduced, modified, distributed, or transmitted in any form or by any means, without the prior written permission of the author.
  • Unauthorized commercial use is strictly prohibited.
  • Unauthorized personal use is strictly prohibited.
0 comment A文章作者 M管理员
    No Comments Yet. Be the first to share what you think