[软件] 宝塔如何开启HTTP3,启用HTTP3使用QUIC进行高性能传输

[复制链接] 查看: 107|回复: 0
发表于 2025-3-6 20:23:25 | 显示全部楼层 |阅读模式
HTTP/3的优势解析
随着互联网的发展,HTTP协议也在不断升级,最新的HTTP/3就是一个大升级版本。相比之前的HTTP/1.1和HTTP/2,它在速度、安全性和用户体验上都大有改进。今天我们来聊聊HTTP/3为什么这么厉害,以及它是怎么一步步成了下一代网络主力的。


HTTP/3的背景故事
HTTP/3是基于一种叫QUIC的协议开发的,说白了,QUIC是一个建立在UDP上的“超级连接”协议。以前的HTTP主要靠TCP在传输,而TCP虽然老牌可靠,但它速度不算快,还有些毛病,比如慢启动、多次握手啥的。Google早就看不下去了,就搞了这个QUIC,解决TCP的缺点,又保留HTTP/2那些好用的功能,比如多路复用。


HTTP/3有哪些过人之处?
1. 连接更快,延迟更低


用传统的HTTP连接(比如HTTP/2),要搞很多次“握手”才能开始传数据,尤其是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直接把安全性做到骨子里了。


这有什么好处?


更安全:每个HTTP/3连接都默认加密,隐私保护更好。


更快:少了加密流程中的重复步骤,连接速度也更快了。


4. 特别适合移动网络


用手机上网的时候,经常会切换网络,比如Wi-Fi换4G,这种情况用传统的TCP连接就很容易断掉,需要重连,特麻烦。


HTTP/3的QUIC协议用了一个叫连接ID的东西,网络切换时还能保持原来的连接,不需要重新来过。结果就是连接更稳定,特别适合移动场景。


5. 降低服务器压力,省钱


虽然HTTP/3实现起来比HTTP/2复杂,但它能让服务器省不少力,比如:


连接快了,服务器处理效率更高,CPU消耗更少。


队头阻塞没了,带宽利用率也更高。


对于那些内容分发网络(CDN)或者流媒体服务来说,这些改进能省下不少运营成本。


6. 用户体验更棒


最直观的感受就是——网页加载更快,视频播放更顺畅,连接更稳。对于普通用户来说,这些看得见的变化就是HTTP/3最大的魅力。


HTTP/3就是为解决旧HTTP的各种痛点而生的,它连接快、不怕掉包、还自带更强的安全性。对于用户来说,体验就是更快更稳更顺滑,而对于企业来说,效率更高还能省钱。虽然它普及还需要一点时间,但毫无疑问,HTTP/3已经是未来网络通信的趋势了。


宝塔开启HTTP3
首先确认你的宝塔Nginx版本。我们在首页找到nginx。




nginx


要求使用1.25.5及以上版本。


如果版本不够,点击进去可以切换版本




切换版本


修改配置文件
我们需要ngnix支持http3,我们需要修改server块的内容。


进入nginx的配置更改位置,插入下面的配置:




ssl_early_data


Code
1
ssl_early_data on;
注意!开启此项请确保项目能够防止重放攻击。


设置SSL版本
进入网站的高级设置




高级设置


关闭TLS的旧版本。(TLS1.1及之前的版本)




关闭旧版本


开放443端口UDP
我们进入安全设置开启443的UDP端口。




开启端口


进入云服务商开启端口
如果你是云服务器,还需要在云服务商开启端口,即使你印象里已经开启,也需要去检查一下。开启443的UDP。




开启端口


为需要的网站添加QUIC监听


添加监听


我们只需要在需要支持HTTP3的网站中添加一行


第一次添加的网站


Code
1
listen  443 quic reuseport;
以后添加的网站


Code
1
listen  443 quic;
即可。


如果你的服务器有ipv6支持(反正我的没有),通过添加下面的两行可以增加ipv6支持:


Php
1
2
listen  [::]:443 ssl;
listen  [::]:443 quic;
修改宝塔自带的h3配置
宝塔自己会给每一个网站添加一行不带有h3的h3 header,导致浏览器无法识别:




h3问题


Code
1
add_header Alt-Svc 'quic=":443"; h3-27=":443";h3-25=":443"; h3-T050=":443"; h3-Q050=":443";h3-Q049=":443";h3-Q048=":443"; h3-Q046=":443"; h3-Q043=":443"';
我们需要更改为:


Code
1
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传输。如果没有的话是不支持的。


但是你可以通过这个文章来绕过这个限制实现HTTP3传输。


大功告成
我们可以到 https://http3.wcode.net/ 来检测网站是否支持。




http3检测


也可以到 https://http3check.net/ 来检测。(由秋风于渭水提供)




检测


浏览器支持
通过检测网站来看还是不直观,所以我们可以在浏览器的控制台中查看。f12进入控制台,在网络标签中,下面传输数据的标题栏右键,开启协议




查看传输协议


我们就可以看到使用的是h3传输了。


如果你没有使用h3传输,还需要查看是否是浏览器不支持。


首先确保你使用最新版本浏览器,chromium内核的浏览器访问:chrome://flags搜索QUIC,启用Experimental QUIC protocol




启用quic


另外啊,要是你用了网络代理,系统代理的 HTTP 和 SOCKS5 都不能转发 UDP 流量,所以想用 H3 的话,那就只能把代理关了。这非常的麻烦,但是可以通过支持自动切换的代理插件实现仅在需要的站点启用。这里就不赘述了。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

不良信息举报   举报中心       在线客服:  1053601    电子信箱   1053601@qq.com  关于我们  -  广告服务  -  网站声明

趣生活(quooo.com) 趣生活@Discuz!   免责声明:本网站仅提供存储服务,如有侵犯您的知识产权,请及时与我们联系。

鲁ICP备2022030562号-2  | 鲁公安备2022030562号  |  鲁B2证-2022030562

快速回复 返回顶部 返回列表