宝塔面板Nginx启用Brotli和HTTP/3
编辑Brotli 和 HTTP/3 介绍
Brotli 是一种通用的无损数据压缩算法,由 Google 开发,主要用于 Web 内容的压缩。Brotli 在 2013 年首次被提出,并在 2015 年被纳入到 HTTP/1.1 和 HTTP/2 协议中。它的主要优点包括:
高压缩率:相比于传统的压缩算法,如 Gzip 和 Deflate,Brotli 能够提供更高的压缩率,尤其是在文本数据(如 HTML、CSS 和 JavaScript)方面。
解压速度快:虽然 Brotli 的压缩速度可能比 Gzip 稍慢,但其解压速度非常快,这使得它非常适合于 Web 场景,能够在用户请求时快速提供压缩资源。
自适应性:Brotli 采用了一种基于字典的压缩方法,能够根据输入数据的特性自适应调整压缩策略,从而优化压缩效果。
HTTP/3 是继 HTTP/1.1 和 HTTP/2 之后的第三代超文本传输协议。它的主要特点包括:
基于 QUIC 协议:HTTP/3 建立在 Google 开发的 QUIC(Quick UDP Internet Connections)协议之上,QUIC 采用 UDP 而非 TCP,这有助于减少连接后的延迟和提高性能。
多路复用:HTTP/3 支持在单个连接中同时处理多个请求和响应,避免了 HTTP/2 中可能存在的队头阻塞问题,从而提高了应用程序的响应速度。
更快的连接建立:QUIC 通过在加密连接的初始握手中进行数据传输,从而减少了连接建立的延迟。
内置加密:HTTP/3 默认使用 TLS 1.3 加密,增强了数据传输的安全性。
安装 Nginx
若要启用 Brotli 压缩功能,请在编译安装 Nginx 时启用 ngx_brotli 模块。
从版本 1.25.0 开始,Nginx 支持 QUIC 和 HTTP/3 协议。若需启用 HTTP/3,请确保所安装的版本高于 1.25.0。
在使用宝塔面板编译安装 Nginx 时,请点击 添加自定义模块 按钮。
在弹出的窗口中填写以下参数:
模块名称:ngx_brotli
模块描述:ngx_brotli
模块参数:--add-module=/www/server/ngx_brotli
前置脚本:
cd /www/server
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
添加 ngx_brotli 模块后,请确保启用该模块,然后点击 提交并安装 按钮,等待 Nginx 安装完成。
启用 Brotli 压缩
请在 Nginx 配置的 http 块内添加以下代码并保存:
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/x-javascript text/xml
application/xml application/xml+rss text/javascript image/x-icon
image/vnd.microsoft.icon image/bmp image/svg+xml;
保存配置文件后,打开网站控制台。如果在响应头中的 content-encoding
字段显示为 br
,则表示成功启用了 Brotli 压缩。
启用 HTTP/3
要启用 HTTP/3,只需在网站配置的 server 块内将 listen 443 quic;
修改为 listen 443 quic reuseport;
。
请注意,要启用 HTTP/3,需要使用 SSL 证书。同时,只需在一个网站中设置
reuseport
,其他网站即可自动生效。
如果您的配置中没有包含 listen 443 quic;
和 add_header Alt-Svc
,您可以在 listen 443 ssl;
后添加以下代码:
listen 443 ssl;
listen 443 quic reuseport;
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"';
然后打开
如果设置后仍然不支持 HTTP/3,请确保 443 端口的 UDP 协议已经放行。
- 0
- 0
-
分享