内容协商
在介绍 之前,先说一下 HTTP 内容协商
有时候,同一个 URL 可以提供多份不同的文档,这就要求服务端和客户端之间有一个选择最合适版本的机制,这就是内容协商
HTTP的内容协商的其中一种方式:服务端根据客户端发送的请求头中某些字段自动发送最合适的版本。可以用于这个机制的请求头字段又分两种:内容协商专用字段( 字段)、其他字段
字段情况,详见下表:
请求头字段
说明
响应头字段
告知服务器发送何种媒体类型
-Type
-
告知服务器发送何种语言
-
-
告知服务器发送何种字符集
-Type
-
告知服务器采用何种压缩方式
-
例如客户端发送以下请求头:
Accept-Encoding:gzip,deflate,br
表示支持采用 gzip、 或 br 压缩过的资源
浏览器的响应头可能是这样的:
Content-Encoding: gzip
什么是
从上面的内容了解到,我们控制使用压缩的资源,除了有Gzip外,还有br,而这个br就是我这里要说的
is a - that data using a of a of the LZ77 , and 2nd order , with a ratio to the best - . It is in speed with but more dense .
是基于LZ77算法的一个现代变体、霍夫曼编码和二阶上下文建模。软件工程师在2015年9月发布了包含通用无损数据压缩的增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。
与常见的通用压缩算法不同,使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。
使用替换来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。
浏览器支持情况安装与配置过程一、注意事项
本教程适用于已经安装Nginx的情况,安装前,请先停止Nginx服务(不需要删除)。
本教程需要网站配置ssl证书。
本教程需要安装宝塔面板,针对没有使用宝塔面板的用户可能不适用,但是安装和配置逻辑可以作为参考。
注意:该压缩编码仅可用于 https 通信。
这次的教程实践环境是 7,其他系统可能不适用!!!
包含两个模块:
二、获取
确保你安装了 git,如果没有,使用命令安装
yum -y install git
SSH软件连接到服务器,然后执行如下命令,以下命令是进入 /www/
cd /www/server
从仓库获取 ,国内推荐使用国内镜像,稳定不出错,使用国内服务器会出现clone失败或者没有进度。
国内服务器:
git clone https://gitee.com/xlsw/ngx_brotli.git
国外服务器
git clone https://github.com/google/ngx_brotli.git
上面的git命令是说把是把放到了 /www/ 路径中,这样我们编译时候的路径就是【/www// 】
进入目录
cd ngx_brotli
升级
git submodule update --init
返回主目录
cd
下图红线部分就是上面输入的命令,可以看下命令对应效果三、下载新的nginx.sh
宝塔面板找到路径:/www//panel/
删除nginx.sh文件,如图:
然后利用面板的远程下载新的就可以了,地址如下
四、查看自己的nginx版本号
用命令来查看自己的nginx版本号,这一这里的v是小写,命令如下:
nginx -v
记住自己的版本,这个很重要。
五、修改nginx.sh
宝塔面板找到路径:/www//panel/找到刚刚下载的文件nginx.sh 打开开始编辑。大概在273行,我们添加
--add-module=/www/server/ngx_brotli
不会添加看图gzip,注意前后空格,--这个标识前面有一个空格,这是一组并列命令,其他命令怎么空的格,你就怎么空
就放在洛城放的那个位置吧。之后保存即可。
六、执行编译
之后回到ssh客户端使用命令开始编译,根据自己的版本,因为洛城这台服务器安装的版本是.18.0所以用编译命令如下:
sh /www/server/panel/install/nginx.sh install 1.18.0
如果你的版本是1.18.0,那么就是修改为1.18.0即可,诸如此类,就是上面强调的你的版本数字,一个字符都不要错,0也加上,安装完成之后,就是下面的效果
然后我们使用命令:
nginx -V
注意这里的v是大写的。就可以看到已经编译成功了gzip,如图:
我们看到已经编译成功。
七、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,之后浏览器打开网站就可以看到效果了
与GZIP可以同时共存,当同时开启两种压缩算法时, 压缩等级优先级高于 Gzip。如果浏览器不支持会用gzip方式压缩,所以这个东东值得你拥有。
文章转载:https://kissangel.online/180.html
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh