当前位置: 首页 > Web前端 > HTML5

让子弹飞,零成本让你的网站更快,开箱http-3(QUIC)协议实战

时间:2023-04-05 02:08:08 HTML5

最近HTTP-over-QUIC协议正式命名为HTTP/3,协议带来的最大变化是协议底层将使用UDP协议代替TCP协议。好处是更低的延迟、更好的拥塞控制、更准确的RTT时间和更高效的多路复用……万岁谷歌,请知道现有的http/2(spdy)协议也起源于谷歌。这么多好处,还等什么,赶快行动起来吧。boxopened整体基于nodejs开发,通过nginx对外提供服务。通过配置,boxopened已经支持了http/2协议,但是目前nginx还不支持quic协议,只能想其他办法了。经过一些谷歌搜索(再次感谢伟大的谷歌),我发现了新一代网络服务器Caddy。Caddy官网:https://caddyserver.com/。caddy自称是比nginx更人性化的web服务器,基于go语言开发,简单易用的配置,原生的http/2支持,自动管理https证书……部署caddy的方式有很多种,因为boxopened作为一个整体是基于docker的部署,这里caddy的部署也是基于docker的部署。幸运的是,官方提供了docker镜像(比如这里的caddy)。下一步是配置。官方文档简单明了,一看就懂。目前对quic的支持仍处于试验阶段,因此要启用quic,请添加-quic标志。下面是docker-compose.yml中caddy服务的配置,大家可以参考。球童:图片:abiosoft/caddy:0.11.1端口:-80:80-443:443-80:80/udp-443:443/udp卷:-../../boxopened-config/caddy/www:/srv-../../boxopened-config/caddy/ssl:/root/.caddy-../../boxopened-config/caddy/logs:/wwwlogs-../../boxopened-config/caddy/conf/Caddyfile:/etc/Caddyfile命令:["--conf","/etc/Caddyfile","--log","stdout","--agree","--quic"]caddyfile配置http://boxopened.com{redir301{/https://www.boxopened.com{uri}}}http://www.boxopened.com{redir301{/https://{host}{uri}}}https://www.boxopened.com{gziplog/wwwlogs/portal.access.logtls/root/.caddy/fullchain.pem/root/.caddy/privkey.pemproxy/portal:6001{透明}}几行配置,搞定,简单!说说我中间遇到的坑吧。首先,quic协议底层是基于udp协议的,所以在配置docker端口的时候,必须暴露相应的udp端口,并开启宿主机的防火墙配置。..(我能说我一直忙到凌晨3:00吗。。。)一切搞定后,我以为一切都ok了,但我发现我无法快速连接,我反复尝试。原来chrome只支持最新的quic协议,于是我更新了caddy的版本,有些东西搞定了!最后展示一下效果,想更直观的体验一下,戳boxopened.com