前言
在新版本的宝塔面板安装的Nginx中,默认是启用了QUIC(HTTP3)的。但是如果我们给网站配置了反向代理,会发现我们的QUIC没有效果(即使我们开了443端口的),这篇文章就是如何配置宝塔面板的反向代理,让其也支持QUIC协议。
具体表现
下图是我宝塔面板搭建的网站默认的配置文件,可以看到是有QUIC相关的配置的,并且是默认启用的(那两个add_header)

但是使用在线http3测试工具测试的时候,可以看到quic(Http3)是没有被正常启用的。
提示:您可以使用这个在线小工具查看您的站点是否支持HTTP3:https://http3check.net/

问题原因
这个问题主要是由于宝塔面板在反向代理的时候,使用了proxy_set_header命令,由于Nginx的特性,后面修改了header会导致前面的添加header配置被清空,所以QUIC配置头被反向代理的proxy_set_header给清除掉了,导致配置无效。
解决方案
我们手动在add header这一层给QUIC相关的配置给加上即可恢复QUIC协议的支持了。请将下面的几个参数写入到Nginx反向代理的配置文件(具体来说,是宝塔生成的两个if块中(如我下面的图),两个块都要写)
add_header Strict-Transport-Security "max-age=31536000";
add_header Alt-Svc 'quic=":443"; h3=":443"; h3-29=":443"; h3-27=":443";h3-25=":443"; h3-T050=":443"; h3-Q050=":443";h3-Q049=":443";h3-Q048=":443"; h3-Q046=":443"; h3-Q043=":443"';

写入之后保存,再进行测试,可以看到HTTP3已经支持了。
