宝塔Nginx开启支持HTTP3/QUIC协议

本文详细记录了在新服务器上为Nginx开启Brotli压缩及HTTP/3的升级过程。尽管遇到了一些意想不到的困难,作者分享了实用的配置步骤和安全注意事项,确保服务器顺利支持最新技术,提升网站性能与安全性。

上一篇文章记录了Nginx 开启Brotli压缩的艰难历程,本来是很简单的事,之前服务器也都是顺手就开通了。但这次因为更换了新服务器,以及升级了nginx,所以遇到很多预料之外的问题。不过既然nginx已经升级1.25(两个小时后又升级了1.26…),一下午也已经浪费掉了,那就把http3开通了吧,反正顺手的事。

宝塔Nginx开启支持HTTP3/QUIC协议

1. 升级Nginx到1.25.5版本

首先升级到nginx1.25以及以上(建议直接升级到1.26.2稳定版,修复了一些针对HTTP3/QUIC的漏洞),既然已经使用宝塔面板了,那就直接在后台软件列表里升级好了,需要编译安装,这个很简单(记得升级完再检查一下Brotli还有没有……)。

2. 修改站点配置文件

接下来随便打开一个长期运行的网站,用来监控端口,打开网站设置,配置文件,在server块里,添加以下代码:

listen  443 ssl;
listen  443 quic reuseport;  
listen  [::]:443 ssl;
listen  [::]:443 quic reuseport;
http2 on;

仅需一个站点开启监听,其他站点的配置如下即可:

listen  443 ssl;
listen  443 quic;  
listen  [::]:443 ssl;
listen  [::]:443 quic;
http2 on;

其中包含“ [::]:”的是针对ipv6的设置,根据自己实际情况选择是否添加,在站点的Nginx配置文件 大概26 27行添加以下代码

ssl_early_data on; # ssl_early_data on;虽然可以提高性能,但其安全风险(重放攻击)可能超过它的好处,不适合包含敏感信息的网站。
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"';

修改SSL版本

#把原 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;中的TLSv1.1以下版本的删掉, TLSv1.1 已经被淘汰了,密码套件也更新了
ssl_protocols TLSv1.2 TLSv1.3;

在这里遇到几个坑,大家遇到网上的教程,最好尽量理解一下代码的含义,很多时候教程不完全可靠。可能是作者手误,也可能环境问题,导致看上去很简单的问题,总有一个坎让你跳过去,特别浪费时间。
宝塔Nginx开启支持HTTP3/QUIC协议

4. 确认UDP 443端口已开放

确认服务器防火墙和云服务防火墙(如果有的话)已经放行UDP 443端口,以允许QUIC流量通过。
宝塔面板:防火墙将443端口UDP开放 宝塔在面板左侧→安全里面配置
云服务器:腾讯云 / 阿里云 / 华为云 等 添加安全组即可

宝塔Nginx开启支持HTTP3/QUIC协议
宝塔Nginx开启支持HTTP3/QUIC协议

5. 测试站点是否支持HTTP/3

配置完成后,可以使用curl或者在线工具:https://http3.wcode.net,测试站点是否已经成功支持HTTP/3。

mango
mango

我是WebSager,1999年开始触网,最早一批电商创业者,从古老的网页三剑客开始,熟悉PHP、Python等各种编程语言。亲眼见证了互联网在从萌芽到爆发的完整过程。
一直保持着对技术的敏感,并不断学习新技术。近年来,我专注于 WordPress建站、AI人工智能等领域,希望通过我的经验帮助更多人进入互联网创业的世界。

文章: 116

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注