网站首页 > 技术教程 正文
sendfile()经过压缩之后,存在着一个问题是使用sendfile之后无法进入应用程序缓冲区,而压缩需要由内核缓冲区进入到应用程序缓冲区
解决问题的方法是,在内核缓冲区就进行压缩,将原先的jquery.js文件压缩成jquery.js.gz
前面在讲解sendfile的时候,提到过,开启sendfile以后,在读取磁盘上 的静态资源文件的时候,可以减少拷贝的次数,可以不经过用户进程将 静态文件通过网络设备发送出去,但是Gzip要想对资源压缩,是需要经 过用户进程进行操作的。所以如何解决两个设置的共存问题。
可以使用ngx_http_gzip_static_module模块的gzip_static指令来解决。
gzip_static指令
gzip_static: 检查与访问资源同名的.gz文件时,response中以gzip相关 的header返回.gz文件的内容。
语法:gzip_static on | off | always;
它的默认值是 gzip_static off;
位置存储在:http、server、location三个模块当中
怎样用,使用vim nginx_gzip.conf打开配置文件
如果你想手动配置压缩指令,先要将gzip的文件进行关闭
使用gzip_static on;将文件进行打开
配置完gzip_static之后,出现一个命令,不认识unknown,出现这个问题的原因是什么?它缺少一个模块配置
如何安装ngx_http_gzip_static_module模块
第一步:nginx -v
第二步:将nginx安装目录下sbin目录中的nginx二进制文件进行更名
cd /usr/local/nginx/sbin
mv nginx nginxold
第三步:进入Nginx的安装目录
cd /root/nginx/core/nginx-1.16.1
第四步:使用make clean将之前编译的文件给他清除掉
第五步:使用--with-http_gzip_static_module,其中--with-的意思就是添加模块的意思
之后就会生成一个Ngnix的二进制可执行文件
输入ll之后,发现这里生成了一个objs的二进制文件
cd 进入之后有一个nginx的可执行文件
cp的意思是,将nginx拷贝到 /usr/local/nginx/sbin文件下,最后项目升级一定要在Ngnix安装目录下升级
先通过cd 往上跳一层
最后执行make upgrade进行升级
检验语法,重新加载 nginx -s reload
步骤小结:
1、查询当前Nginx的配置参数
nginx -V
2、将nginx安装目录下sbin目录中的nginx二进制文件进行更名
cd /usr/local/nginx/sbin
mv nginx nginxold
3、 进入Nginx的安装目录
cd /root/nginx/core/nginx-1.16.1
4、执行make clean清空之前编译的内容
make clean
5、使用configure来配置参数
./configure --with-http_gzip_static_module
6、使用make命令进行编译
make
7、将objs目录下的nginx二进制执行文件移动到nginx安装目录下的sbin 目录中
mv objs/nginx /usr/local/nginx/sbin
8、执行更新命令
make upgrade
gzip_static测试使用
首先切换到 cd /usr/local/nginx/html/页面下查看是否有jquery.js文件是否存在
直接访问/jquery.js发现文件的数据格式是281kb,文件数据格式没有进行压缩
在Network中没有压缩的请求头数据格式
直接使用gzip jquery.js可以将jquery.js.gz文件进行压缩
再对jQuery.js文件进行访问,此时jQuery的数据大小已经变成了83.4kb了,数据已经被压缩了
使用NetWork查看请求头的相关信息,此时经过压缩文件后访问的jQuery.js文件,多了一个Contets-Encoding:gzip和Var:Accept-Encoding,表示该文件经过了压缩
猜你喜欢
- 2024-10-14 面试必备:nginx知识梳理(收藏版)(nginx面试题汇总)
- 2024-10-14 在Docker内安装Nginx教程(docker安装nginx详解)
- 2024-10-02 nginx 之https配置(nginx安装与配置详解windows)
- 2024-10-02 手把手教你nginx解决前端本地跨域问题
- 2024-10-02 nginx配置https的详细流程(nginx代理配置详解)
- 2024-10-02 面试必备:nginx知识梳理(nginx基础知识)
- 2024-10-02 K8S中使用HostPath挂载宿主机文件详解
- 2024-10-02 Nginx之3抛砖引玉 - (目录索引)(nginx主目录)
- 2024-10-02 2021年nginx最新系列之目录加密(nginx目录权限管理)
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)