以宝塔Linux面板为例为网站开启HTTP/3 QUIC协议
HTTP/3 QUIC简介
HTTP/3和QUIC是现代互联网传输协议的改进版本,旨在提高数据传输速度、可靠性和安全性。
1. HTTP/3
HTTP/3是HTTP协议的最新版本,之前版本是HTTP/2。与之前的版本不同,HTTP/3使用了新的传输协议QUIC,而不是传统的TCP传输。HTTP/3主要优点包括:
- 更快的连接建立速度:减少了延迟,尤其是在需要反复连接的场景下(例如网页加载多个资源)。
- 更高的稳定性:在连接发生丢包时,HTTP/3能更好地恢复,而不用像HTTP/2一样中断所有请求。
- 更好的移动性:在移动网络环境下,HTTP/3在设备切换网络(如从WiFi到移动网络)时能保持稳定连接。
2. QUIC
QUIC(Quick UDP Internet Connections)是由Google开发的一种基于UDP的传输协议。相比传统的TCP,QUIC具有以下优势:
- 低延迟:QUIC基于UDP,减少了握手时间,尤其是在安全连接(TLS)的握手上,能够显著缩短延迟。
- 多路复用:QUIC可以在同一连接上处理多个数据流,避免了TCP的队头阻塞问题。
- 更强的安全性:QUIC内置了TLS加密功能,提高了数据传输的安全性。
总结
HTTP/3和QUIC的组合为网站和应用带来了更快的加载速度和更稳定的传输体验,特别是在复杂网络环境下(如移动设备的使用)效果更为明显。随着互联网技术的普及和发展,越来越多的网站开始支持HTTP/3和QUIC传输。
基于宝塔Linux面板最新9.2.0版本开启网站HTTP/3 QUIC协议支持
教程开始
- web环境:Nginx 1.25.5+PHP 8.3.12
- 以面板多域名全部开启HTTP/3 QUIC协议支持为例
首先:在所有的 server 域中,需要有一个 server 域中配置 reuseport 选项,其他无需配置reuseport 选项。
代码示例:
listen 443 ssl;
listen 443 quic reuseport;
listen [::]:443 ssl;
listen [::]:443 quic reuseport;
http2 on;
示例:
在配置文件添加如下代码块1,并且修改原文件中ssl_protocols这一项,把原 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;中的TLSv1.1以下版本的删掉, TLSv1.1 已经被淘汰了,密码套件也更新了,保留TLSV1.2和TLSV1.3,博主比较爱折腾直接只保留了TLSV1.3。
#代码块1
ssl_early_data on;
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"';
#代码块2
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
修改好后如下图所示:
重要提示:如果添加其他域名就不需要配置reuseport 选项,直接用如下代码,其他和上面步骤一样。
listen 443 ssl;
listen 443 quic;
listen [::]:443 ssl;
listen [::]:443 quic;
http2 on;
总结
完成以上步骤后记得重启下web环境,使其生效。以上配置完成后HTTP/3 QUIC协议就成功开启了。
效果图: