宝塔Nginx反代上游服务器不支持HTTP3,如何启用HTTP3
文章摘要
HeoGPT
这篇文章介绍了宝塔 Nginx 反代上游服务器不支持 HTTP3 时启用 HTTP3 的方法。包括启用网站监听 443QUIC,在宝塔反代中开启缓存,插入特定响应头,按此操作后可成功获得 HTTP3 支持,为解决相关问题提供了实用教程。
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
投诉上一篇文章介绍了宝塔如何为网站开启HTTP3,这个适合没有反代的网站,但是如果我们平常使用Docker的时候就会发现之前的文章是无法解决Docker项目的HTTP3开启了。
HTTP3是要求全链路都需要支持QUIC的,而大多数情况容器本身也不会去考虑支持QUIC并且也没必要,难道就没有办法了吗?
当然有啦。其实目的就是利用了Nginx的缓存。虽然服务器到容器的链路不支持QUIC,但是如果用户访问不到服务器到容器的链路,直接读Nginx的缓存,那么即可实现HTTP3。
启用网站监听443QUIC
我们进入带有反代的网站设置,跟之前的教程一样,添加
第一次添加的网站
1 | listen 443 quic reuseport; |
以后添加的网站
1 | listen 443 quic; |
开启缓存
在我们已经在宝塔中设置好的反代中,点击开启缓存。并且点击配置文件。
插入响应头
我们需要在location里添加我们之前文章中说的响应头:
1 | 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监听:
1 | listen 443 quic; |
在 location 块中添加缓存支持
1 | proxy_ignore_headers Set-Cookie Cache-Control expires; |
在 location 块中添加http3支持
1 | 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。
- 感谢你赐予我前进的力量
打赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 张洪Heo
评论
生成评论
匿名评论
违规举报
✅ 你无需删除空行,直接评论以获取最佳展示效果