http3 使用的QUIC传输协议(基于 UDP),对比 http2,有以下优点:
- 改善了连接建立时间,因为 TCP 是有连接的,在信息发送前得三次握手;而 UDP 是无连接的,可直接发送数据给服务端。
- 使用更加灵活的控制阻塞算法,TCP 丢包需要重传,导致头阻塞问题,而 QUIC 让每个数据流都有独立的序列号,这样一个流中的数据包丢失不会影响其他流的传输。
- 使用的加密套件 TLS1.3 更安全
言归正传,1panel 开启 http3 需要 nginx 和 openresty 版本在 1.25 及以上,小于该版本协议使用的 http2。
但是 1panel 的最新官方应用商店的 openresty 的版本为 1.21,不满足开启 http3,那我们该怎么办呢?
操作前请记得备份,安全第一!!!
取消 WAF 配置
因为 1panel 的 openresty 绑定在一起,本人亲测强行更新 openresty 版本会导致 openresty 启动异常。
打开/opt/1panel/apps/openresty/openresty/conf/nginx.conf
在大约 34 行的位置处:
1 |
|
把这行给注释掉
修改 openresty 版本
打开/opt/1panel/apps/openresty/openresty/docker-compose.yml
修改 openresty 版本为1.27.1.1-0-focal
重建应用
打开已安装,点击重建按钮
或者执行:
1 |
|
这样也是可以的
防火墙放行
1 |
|
配置 http3
然后打开网站的配置文件,添加以下几行
1 |
|
上述是静态网站,如果是反向代理,继续添加这 2 行
1 |
|
添加响应头,告知客户端关于备用服务的信息(Alt-Svc)以及强制使用安全连接的策略(Strict-Transport-Security)。
网站实测
打开https://http3.wcode.net/
检测
还提供了一个 http3 的徽标,确实挺不错的
控制台实测
请不要开 🪜
可以看到,大多数都是支持h3的
使用 PageSpeed 检测
PC 端速度提升了一丢丢,而移动端性能提升显著
移动端的渲染时间比 PC 端慢很多 🤣
今天就到这吧。。。