百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

加速你的网络服务器——把Gzip换成Brotli的Nginx配置教程

off999 2025-02-13 13:40 28 浏览 0 评论

内容协商

在介绍 Brotli 之前,先说一下 HTTP 内容协商

有时候,同一个 URL 可以提供多份不同的文档,这就要求服务端和客户端之间有一个选择最合适版本的机制,这就是内容协商

HTTP的内容协商的其中一种方式:服务端根据客户端发送的请求头中某些字段自动发送最合适的版本。可以用于这个机制的请求头字段又分两种:内容协商专用字段(Accept 字段)、其他字段

字段情况,详见下表:

请求头字段

说明

响应头字段

Accept

告知服务器发送何种媒体类型

Content-Type

Accept-Language

告知服务器发送何种语言

Content-Language

Accept-Charset

告知服务器发送何种字符集

Content-Type

Accept-Encoding

告知服务器采用何种压缩方式

Content-Encoding

例如客户端发送以下请求头:

Accept-Encoding:gzip,deflate,br

表示支持采用 gzip、deflate 或 br 压缩过的资源

浏览器的响应头可能是这样的:

Content-Encoding: gzip

什么是 Brotli

从上面的内容了解到,我们控制使用压缩的资源,除了有Gzip外,还有br,而这个br就是我这里要说的 Brotli

Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression.

Brotli 是基于LZ77算法的一个现代变体、霍夫曼编码和二阶上下文建模。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。

与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。

使用Brotli替换Deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。

浏览器支持情况

  • Mozilla Firefox在Firefox 44中实现Brotli。
  • Google Chrome从Chrome 49开始支持Brotli。
  • Opera从Opera 36开始支持Brotli。

安装与配置过程

一、注意事项

本教程适用于已经安装Nginx的情况,安装前,请先停止Nginx服务(不需要删除)。

本教程需要网站配置ssl证书。

本教程需要安装宝塔面板,针对没有使用宝塔面板的用户可能不适用,但是安装和配置逻辑可以作为参考。

注意:该压缩编码仅可用于 https 通信。

这次的教程实践环境是CentOS 7,其他系统可能不适用!!!

ngx_brotli 包含两个模块:

  • ngx_brotli filter module - 用于动态压缩响应体。
  • ngx_brotli static module - 用于使用预压缩的 .br 文件进行服务(静态站点)

二、获取 ngx_brotli

确保你安装了 git,如果没有,使用命令安装

yum -y install git

SSH软件连接到服务器,然后执行如下命令,以下命令是进入 /www/server

cd /www/server

从仓库获取 ngx_brotli,国内推荐使用国内镜像,稳定不出错,使用Github国内服务器会出现clone失败或者没有进度。

国内服务器:

git clone https://gitee.com/xlsw/ngx_brotli.git

国外服务器

git clone https://github.com/google/ngx_brotli.git

上面的git命令是说把是把ngx_brotli放到了 /www/server 路径中,这样我们编译时候的路径就是【/www/server/ngx_brotli 】

进入目录

cd ngx_brotli

升级 Brotli

git submodule update --init

返回主目录

cd

下图红线部分就是上面输入的命令,可以看下命令对应效果

三、下载新的nginx.sh

宝塔面板找到路径:/www/server/panel/install

删除nginx.sh文件,如图:

然后利用面板的远程下载新的就可以了,地址如下

http://download.bt.cn/install/0/nginx.sh

四、查看自己的nginx版本号

用命令来查看自己的nginx版本号,这一这里的v是小写,命令如下:

nginx -v

记住自己的版本,这个很重要。

五、修改nginx.sh

宝塔面板找到路径:/www/server/panel/install找到刚刚下载的文件nginx.sh 打开开始编辑。大概在273行,我们添加

--add-module=/www/server/ngx_brotli

不会添加看图,注意前后空格,--这个标识前面有一个空格,这是一组并列命令,其他命令怎么空的格,你就怎么空

就放在洛城放的那个位置吧。之后保存即可。

六、执行编译

之后回到ssh客户端使用命令开始编译,根据自己的版本,因为洛城这台服务器安装的版本是nginx1.18.0所以用编译命令如下:

sh /www/server/panel/install/nginx.sh install 1.18.0

如果你的版本是1.18.0,那么就是修改为1.18.0即可,诸如此类,就是上面强调的你的版本数字,一个字符都不要错,0也加上,安装完成之后,就是下面的效果

然后我们使用命令:

nginx -V

注意这里的v是大写的。就可以看到brotli已经编译成功了,如图:

我们看到brotli已经编译成功。

七、Nginx的全局配置文件

如果检测安装正常的话,可以开始配置,打开路径

宝塔后台--软件管理--已安装--Nginx--设置--修改配置

在gzip代码字段后面插入下面代码,如图,不懂的直接复制下面代码,别管我的配置,懂的自己搞

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

解释:(以下参数可以自由配置,上面为推荐)

brotli on; #启用
brotli_comp_level 6; #压缩等级,默认6,最高11,太高的压缩水平可能需要更多的CPU
brotli_buffers 16 8k; #请求缓冲区的数量和大小
brotli_min_length 1k; #指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定1k
brotli_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml text/html application/json image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl image/x-icon image/jpeg image/gif image/png image/bmp; #指定允许进行压缩类型
brotli_static always; #是否允许查找预处理好的、以.br结尾的压缩文件,可选值为on、off、always
brotli_window 512k; #窗口值,默认值为512k

配置完成保存之后可以重启nginx,之后浏览器打开网站就可以看到效果了

Brotli与GZIP可以同时共存,当同时开启两种压缩算法时,Brotli 压缩等级优先级高于 Gzip如果浏览器不支持brotli会用gzip方式压缩,所以这个东东值得你拥有。

文章转载:https://kissangel.online/180.html

相关推荐

win10系统保护不见了(win10系统保护打不开怎么办)

1、启动计算机,启动到Windows10开机LOGO时就按住电源键强制关机,重复强制关机3次!2、重复步骤3次左右启动后出现“自动修复”界面,我们点击高级选项进入;3、接下来会到选择一个选项界面...

新手如何重装win8(怎么重新装系统win8)

要想重装回win8.1系统,首先你需要一个win8.1的系统安装盘,然后把你电脑的系统盘格式化一下,或者把你的win10系统删除了,再把win8.1系统安装盘插到电脑上,进行系统安装,等电脑安装系统完...

磁盘分区工具软件(硬盘分区工具软件)

如果说最安全的那就用电脑自带的吧,右键我的电脑,找到管理,然后进去磁盘管理,然后找到目前的一个磁盘,右键压缩卷,输入压缩空间就是你想要的一个盘的大小(1G=1024MB),然后压缩,然后找到你压缩出来...

ftp手机客户端(ftp手机客户端存文件)

要想实现FTP文件传输,必须在相连的两端都装有支持FTP协议的软件,装在您的电脑上的叫FTP客户端软件,装在另一端服务器上的叫做FTP服务器端软件。  客户端FTP软件使用方法很简单,启动后首先要与...

原版xp系统镜像(原版xp系统镜像怎么设置)

msdnitellyou又可以上了,那里有。  制作需要的软件  在开始进行制作之前,我们首先需要下载几个软件,启动光盘制作工具:EasyBoot,UltraISO以及用来对制作好的ISO镜像进行测...

office2007密钥 office2016(office2007ultimate密钥)

word2016激活密钥有两种类型:永久激活码和KMS期限激活密钥。其中,永久激活密钥可以使用批量授权版永久激活密钥进行激活,如所示;而KMS期限激活密钥需要使用KMS客户端密钥进行激活,如所示。另外...

windows10系统启动盘制作(windows10启动盘制作教程)

Windows10系统更改启动磁盘的方法如下1、按快捷键Win+R,调出命令窗口2、输入msconfig,点【确定】3、在系统配置中,选择【引导】菜单4、选择要默认启动的磁盘,点【设置为默认值】,...

方正电脑怎么重装系统

购买一张系统盘,然后启动电脑,将购买的系统盘插入电脑光驱中,等待光驱读取系统盘后,点击安装系统,即可自动安装,等待安装完毕,电脑会自动重启,重新启动后,电脑的系统就安装完毕,可以使用了一、准备需要的软...

qq邮箱怎么写才正确
qq邮箱怎么写才正确

步骤/方式1一般默认的QQ邮箱格式是:QQ号码@qq.com,即QQ账号+@qq.com后缀步骤/方式2若要发送邮件,也要在对方的qq帐号末尾加上@qq.com1.每个人在注册QQ时都会有关联的一个邮箱,它的格式就是“QQ号码@qq.com...

2025-12-21 18:51 off999

电脑怎么看配置信息
电脑怎么看配置信息

要查看Windows电脑的配置信息,可以通过按下Win键+R,然后在弹出的运行对话框中输入“dxdiag”并按回车键打开DirectX诊断工具,可以查看有关处理器、内存、显卡等硬件信息。另外,还可以右键点击“此电脑”,选择“属性”来查看...

2025-12-21 18:03 off999

mpeg是什么格式(mpeg是什么格式和mp4的区别)

是视频格式,是电脑视频文件的一种,相对其它视频文件格式而言,mpeg格式占的存储空间相对比较小,那么像素也就相对比较低,图像也没有其它格式那么高清,不过一般情况下已经满足正常的使用。好多视频文件都是采...

电脑参数配置怎么选(电脑参数配置怎么选择)

1、CPU,这个主要取决于频率和二级缓存,三级缓存,核心数量。频率越高、二级缓存越大,三级缓存越大,核心越多,运行速度越快。速度越快的CPU只有三级缓存影响响应速度。2、内存,内存的存取速度取决于接口...

windows7字体(Windows7字体库在哪)

win7系统默认中文字体是微软雅黑字体1、首先我们先打开个性化2、然后我们打开“窗口颜色”3、然后我们点击“项目”里的桌面,选择“已选定的项目”4、下面就可以改字体,还有字体的颜色、大小5、然后点击“...

windows7x86是32位吗(windows7 x86)

X86不是代表操作系统,是代表的CPU的类型,如果你知道CPU的发展史就知道,个人用计算机的CPU很早的版本是从286、386、486、586、奔腾等等类型发展起来的,所以X86的代表PC的CPU的类...

固态硬盘删除后又自动恢复了

进入BIOS查看,第一启动项是不是UEFI引导,改掉它可以下载个pe,下载安装在本地磁盘里,重启进入pe工具,先给固态格式化分区,在ghost机械盘上的系统,还原到固态上。遇到这种情况一定不要在此...

取消回复欢迎 发表评论: