kn007的个人博客
♥ You are here: > > > 小试HTTP3

小试HTTP3

by | 10 Comments


CF最近推出了个项目quiche,用于为Nginx添加QUIC支持,并支持HTTP3。

具体可以查看传送门。为此,我也更新了patch,重新整合了下。因为SPDY早已过期,所以这次新的patch就没再整合进来。

Patch为Nginx添加了以下特性:

Add QUIC Support.
Add HTTP2 HPACK Encoding Support.
Add Dynamic TLS Record support.

目前已知Arch、Ubuntu 18可以直接编译成功。

像Debian 10和CentOS 8,需要编译部分组件,特别是需要最新版的rust支持。

通过以下命令可以安装最新版rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

然后在shell界面通过

source $HOME/.cargo/env

来临时添加环境变量调用。

具体patch使用,可以见上面CF文章传送门,我这里也大概讲下。

支持Nginx稳定版(1.16)和主要分支(1.17)的最新版本。

首先,获取quiche项目备用:

git clone --recursive https://github.com/cloudflare/quiche

其次,进入到Nginx源码目录,打我的patch或者是CF的patch。

接着,编译参数除了自定参数外,添加以下参数:

--with-http_v3_module
--with-openssl=/path/to/quiche/deps/boringssl
--with-quiche=/path/to/quiche

注意,按照实际更改位置。然后编译即可。也可以参考下我之前的文章:《我的Nginx编译之旅

Nginx配置方面,在Server段,需要两个listen,一个是udp,也就是quic,一个是tcp,也就是正常的443 SSL这些。

并且,需要新增一个Header,还有TLS1.3支持。配置大概如下:

server {
     # Enable QUIC and HTTP/3.
    listen 443 quic reuseport;

    # Enable HTTP/2 (optional).
    listen 443 ssl http2;

    ssl_certificate      cert.crt;
    ssl_certificate_key  cert.key;

    # Enable all TLS versions (TLSv1.3 is required for QUIC).
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        
    # Add Alt-Svc header to negotiate HTTP/3.
    add_header alt-svc 'h3-23=":443"; ma=86400';
}

最早的时候,CF文章,忘记提示需要添加header,现在文章也已经有了。

其他就没啥坑了。

HTTP3测试可以通过quiche项目的工具检查,也可以通过这里检查。

不过讲道理,现在HTTP3没什么浏览器支持,QUIC也没多少支持的,虽说目前协议是已经是完善的了,但暂时仅限尝鲜。

但不得不吐槽的是Nginx官方速度真的慢,之前明明说好已经在给Nginx添加QUIC支持了,然后今年都快完了,还没弄出来。


然后目前博客服务器的Nginx已经rollback。。等以后再上了。

谈谈patch,下一版本,肯定是放弃spdy的了。

毕竟已经被废弃这么久了,加上明年上半年,主流浏览器也不会再支持TLS 1.0和TLS 1.1,那就更没有留的必要了。

我最迟可能也会在明年5月就取消Nginx(SPDY、TLS 1.0和TLS 1.1)支持。

转载请注明转自:kn007的个人博客的《小试HTTP3

donate
有所帮助?

Comments

10 Comments立即评论
Loading...
  1. 回复

    《更新到 HTTP 3》 :mrgreen:

    1. MOD回复
  2. 这写的什么鬼,啥都看不懂 :cry:

  3. 我http2都没用上,你却已经在折腾http3了 :oops:

    1. MOD回复

      @心灵博客: http2现在都是标配的了。

    2. 回复

      @心灵博客: 你的博客,为何这么快!

  4. 回复

    我记得litespeed可以直接上http/3,差点因为这个放弃nginx

  5. 折腾不来。

  6. 回复

    打酱油……

  7. 博主的网站还是很不错的,不过更新要有节奏。还有就是博主,我建议你,网站的界面可以适当修整一下,例如,块的边框可以去掉,这样整站看起来才不会花,才会大气。今天看了你一篇文章解决了一些问题,谢谢。

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif