如何开启Apache,Nginx和IIS服务器的GZIP压缩功能


Posted in Servers onApril 29, 2022

我们知道做好负载均衡对网站的正常运行,用户体验相当重要。在负载均衡中有一个必须要做的事情就是给服务器开启GZIP压缩功能,对用户请求的页面进行压缩处理,以达到节省网络带宽,提高网站速度的作用。

GZIP是若干文件压缩程序的简称,通常指GNU计划的实现,此处的GZIP代表的就是GUN ZIP,这也是HTTP1.1协议定义的两种压缩方法中最常用的一种压缩方法,客户端浏览器大都支持这种压缩格式。接下来,DNSLA将介绍apache、IIS、nginx 这些现在流行的web服务器如何开启GZIP压缩的方法。

Apache如何开启GZIP功能

Apache开启GZIP要看查看是否已经开启mod_deflate模块,如果没有则需要先加载,在配置文件httpd.conf中将

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

前面的#号去掉。DNSLA建议,如果对apache的配置文件不太懂的客户在修改配置文件之前对配置文件进行备份。

开启模块后,在httpd.conf配置文件的最下面空白处添加一下内容:

<IfModule mod_deflate.c>
# 告诉 apache 对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
# 压缩等级 9
DeflateCompressionLevel 9
</IfModule>

这样就能对所有文件进行 gzip 压缩了。压缩等级是个 1-9 之间的整数,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源。

实际开发中我们并不需要对所有文件进行压缩,比如我们无需对图片文件进行gzip压缩,因为图片文件(一般为jpg、png等格式)本身已经压缩过了,再进行gzip压缩可能会适得其反(详见图片要启用gzip压缩吗?绝对不要!,背景图片千万不要gzip压缩,尤其是PNG),类似的还有 PDF 以及音乐文件。所以我们可以设置过滤指定文件或者对指定文件进行压缩。

比如我们要对图片等特殊文件不进行 gzip 压缩处理:

<IfModule mod_deflate.c>
# 告诉 apache 对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
# 压缩等级 9
DeflateCompressionLevel 9
#设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>

或者指定文件格式进行压缩:

<IfModule mod_deflate.c>
# 压缩等级 9
DeflateCompressionLevel 9
# 压缩类型 html、xml、php、css、js
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfModule>

其中DeflateCompressionLevel 的意思是压缩等级,共分为1-9,9级为最高,不建议使用太高的压缩比,这样会对CPU产生太大的负担。

IIS如何开启GZIP功能

打开IIS管理工具,在右键网站打开网站属性,在服务选项卡中开启HTTP压缩,不建议选中压缩应用程序文件,但一定要选上压缩静态文件,不然就等于没有压缩,达不到负载均衡了。然后选中我那个站下面那个服务器扩展,新建一个服务器扩展,名字为GZIP,下面的添加文件路径为:c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。DNSLA提醒大家,还没结束,第三步是,我们要修改配置文件,在配置文件之前要停止IIS服务,(DNSLA提醒大家一定要先关闭IIS服务)打开C:\Windows\System32\inetsrv\MetaBase.xml,这个文件很大,找到下面一段信息:

<IIsCompressionScheme  Location ="/LM/W3SVC/Filters/Compression/gzip"

HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"

HcCreateFlags="1"

HcDoDynamicCompression="TRUE"

HcDoOnDemandCompression="TRUE"

HcDoStaticCompression="TRUE"

HcDynamicCompressionLevel="0"

HcFileExtensions="htm

html

txt"

HcOnDemandCompLevel="10"

HcPriority="1"

HcScriptFileExtensions="asp

dll

exe"

>

</IIsCompressionScheme>

修改这个文件是要增加一些要进行压缩的文件后缀,其中 HcFileExtensions 是静态文件的扩展名,增加 js 和 css 等;HcScriptFileExtensions 为动态文件的扩展名,增加 aspx,HcDynamicCompressionLevel改成9,(0-10,6是性价比最高的一个)。

然后需要重启一下IIS服务即可。

Nginx如何开启GZIP功能

相对apache 和 IIS nginx开启GZIP简单很多,只需要打开配置文件 nginx.conf找到gzip on 把前面的注释符号#去掉即可开启GZIP服务。然后配置GZIP即可。

下面是一个相对优化不错的配置,DNSLA建议使用。

Gzip on;

gzip_min_length 1024;

gzip_buffers   4  8k;

gzip_types   text/plain application/x-javascript text/css  application/xml;

到此这篇关于服务器端如何开启GZIP压缩功能(Apache、IIS、Nginx)的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
Nginx+SpringBoot实现负载均衡的示例
Mar 31 Servers
提升Nginx性能的一些建议
Mar 31 Servers
Nginx安装完成没有生成sbin目录的解决方法
Mar 31 Servers
小程序后台PHP版本部署运行 LNMP+WNMP
Apr 01 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
Tomcat项目启动失败的原因和解决办法
Apr 20 Servers
windows系统安装配置nginx环境
Jun 28 Servers
nginx之queue的具体使用
Jun 28 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
Jul 15 Servers
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
Aug 14 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 Servers
解决IIS7下无法绑定https主机的问题
IIS服务器中设置HTTP重定向访问HTTPS
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Windows Server 2012 R2 磁盘分区教程
Windows server 2012 R2 安装IIS服务器
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
You might like
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
2014过年倒计时示例
2014/01/31 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
Convert Seconds To Hours
2007/06/16 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
Python进阶之递归函数的用法及其示例
2018/01/31 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
python实现机器学习之元线性回归
2018/09/06 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
淘宝中秋节活动方案
2014/01/31 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS