上一篇文章介绍了宝塔如何为网站开启HTTP3,这个适合没有反代的网站,但是如果我们平常使用Docker的时候就会发现之前的文章是无法解决Docker项目的HTTP3开启了。
HTTP3是要求全链路都需要支持QUIC的,而大多数情况容器本身也不会去考虑支持QUIC并且也没必要,难道就没有办法了吗?
当然有啦。其实目的就是利用了Nginx的缓存。虽然服务器到容器的链路不支持QUIC,但是如果用户访问不到服务器到容器的链路,直接读Nginx的缓存,那么即可实现HTTP3。
启用网站监听443QUIC
我们进入带有反代的网站设置,跟之前的教程一样,添加
第一次添加的网站
listen 443 quic reuseport;以后添加的网站
listen 443 quic;
开启缓存
在我们已经在宝塔中设置好的反代中,点击开启缓存。并且点击配置文件。

插入响应头
我们需要在location里添加我们之前文章中说的响应头:
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"';大功告成
我们可以看到已经成功获得了HTTP3的支持啦!
给Python项目添加HTTP3支持
我们知道了nginx缓存的方案可以让不支持QUIC的项目支持HTTP3。那么同样的原理可以用在Python项目上。
我的某个项目是Python项目,只需要
server块添加QUIC监听:
listen 443 quic;在 location 块中添加缓存支持
proxy_ignore_headers Set-Cookie Cache-Control expires;
proxy_cache cache_one;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 301 302 1m;在 location 块中添加http3支持
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"';即可实现HTTP3。
转载作品,原作者:张洪Heo,文章来源:https://blog.zhheo.com/p/6zuz70vr.html
微信赞赏
支付宝赞赏 