让枪弹飞,零本钱让你的网站更快一点,boxopened http/3 (QUIC) 协定实战

近来HTTP-over-QUIC 协定被正式命名为 HTTP/3,协定带来的最大转变是协定底层将采纳UDP协定,而不再是TCP协定,如许的优点吗,就是更低时延,更好的堵塞掌握,更准确的RTT时刻,更高效力的多路复用…谷歌万岁,要知道现有的http/2(spdy)协定也是源于谷歌。

这么多的优点,还等什么,开搞。

boxopened团体基于的nodejs开辟,经由过程nginx反代对外供应效劳,之前经由过程设置,boxopened已支撑了http/2协定,然则现在nginx还不支撑quic协定,因而只能想别的方法。经由一番谷歌(再次谢谢巨大的谷歌)今后,发明了Caddy,一个新一代的web 效劳器。caddy的官网:https://caddyserver.com/ 。caddy宣称是比nginx更人性化的web server,基于go言语开辟,简朴易用的设置,原生的http/2支撑,自动的https证书治理….

caddy的布置有许多体式格局,因为boxopened团体是基于docker化的布置,所以这里caddy的布置也是基于docker布置的,幸亏官方供应了docker镜像(这里给caddy点个赞)。接下来就是设置了,官方文档写的简朴又清晰,一看就懂。现在对quic的支撑还处于试验性子,所以要开启quic,要加上-quic 标志。

下面是docker-compose.yml 中caddy效劳的设置,人人能够参考下。

caddy:
    image: abiosoft/caddy:0.11.1
    ports:
    - 80:80
    - 443:443
    - 80:80/udp
    - 443:443/udp
    volumes:
    - ../../boxopened-config/caddy/www:/srv
    - ../../boxopened-config/caddy/ssl:/root/.caddy
    - ../../boxopened-config/caddy/logs:/wwwlogs
    - ../../boxopened-config/caddy/conf/Caddyfile:/etc/Caddyfile
    command: ["--conf", "/etc/Caddyfile", "--log", "stdout", "--agree", "--quic"]

caddyfile 设置

http://boxopened.com {
  redir 301 {
      / https://www.boxopened.com{uri}
  }
}

http://www.boxopened.com {
  redir 301 {
      / https://{host}{uri}
  }
}

https://www.boxopened.com {
  gzip
  log /wwwlogs/portal.access.log
  tls /root/.caddy/fullchain.pem /root/.caddy/privkey.pem
  proxy / portal:6001 {
  transparent
  }
}

就这么几行设置,完事儿,简朴吧!

再给人人说说我中心碰到的坑,起首quic协定的底层是基于udp协定的,所以在举行docker端口设置的时刻,要expose响应的udp端口,而且翻开主机的防火墙设置。。。(我能说我在这上面搞到凌晨三点么。。。)

统统的统统完成后,我认为统统都ok了,又发明怎样都没法举行quic衔接,重复尝试照样不可。本来chrome只支撑最新的quic协定,所以更新了下caddy的版本,一些搞定!

末了展现下结果
《让枪弹飞,零本钱让你的网站更快一点,boxopened http/3 (QUIC) 协定实战》

想更直观的感觉下,请戳 boxopened.com

    原文作者:GGBond1989
    原文地址: https://segmentfault.com/a/1190000017189067
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞