聊聊Nginx 1.25和HTTP/3

距离之前闲聊Nginx,已经过去快3年。而之前在Nginx 1.16时,由Cloudflare为支持HTTP/3推出的quiche项目,也已过去了近4年。

时间过得很快,终于在前几周,5月23日,Nginx出1.25.0,Mainline版本合并QUIC分支,支持HTTP/3。

更新当天就已经更新到最新版本,只是没写文章。通过这里可查看本站HTTP/3支持状态。

原生支持,肯定是比较开心,毕竟不用去维护过多额外的东西。

我使用的是OpenSSL,虽然官方提示会不支持Early Data,但暂时不是很有所谓。

使用BoringSSL肯定是最好的,之前也看过一些测试结果,BoringSSL各方面性能还是比较不错的(可能部分项目不如OpenSSL 1.1)。但是不支持双证书,而且OCSP stapling需要补丁支持,不能说不好吧,但总觉得差点什么。等什么时候,感觉Early Data或者有其他特性更重要,可能会转变吧。

最近Nginx更新到1.25.1后,HTTP/2 Server Push支持被移除了。也因此,我之前做的Patch,取自CF的HTTP2 HPACK Encoding支持不再可用(因为它是以Server Push为基础)。目前对于最新版Nginx,Patch只保留了Dynamic TLS Record支持。

kn007/patchSomething could be public patches

对于此,个人觉得可以接受,因为这个功能我很少用,只在早期用过几次Server Push。主要是觉得不够实用,或者说没这个需求。但基于此而应用的HTTP2 HPACK Encoding支持倒是挺实用,它可以抑制被攻击时的影响,并且减少流量开销。因为HTTP/2 Server Push移除而丢失这一功能支持,稍微有点可惜了。

转载请注明转自:kn007的个人博客的《聊聊Nginx 1.25和HTTP/3