服务器端如何开启GZIP压缩功能(Apache、IIS、Nginx)
作者:唯独黑白丶 发布时间:2023-06-25 20:26:30
我们知道做好负载均衡对网站的正常运行,用户体验相当重要。在负载均衡中有一个必须要做的事情就是给服务器开启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;
来源:https://juejin.cn/post/6844903602822070280
猜你喜欢
- 1 从信托的网站上,加入到本地的链接联盟中2 如果您有足够的有价值的信息并认识一个教授的话,与地方高校建立链接是有意义的3 加入更好的商业协
- Google刚刚发布了一款名为Page Speed的Firefox/Firebug扩展。这是一款能帮助用户改善网站性能的工具。在运行它之后,
- 10月23日消息 一面高调叫嚣“反盗版”,一面被法院裁定网络影视盗版第一案,在网络视频维权大戏中,正
- 一、登记在册的恶意 User Agent1、”Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5
- 假设有个人从来没有听说过你的公司,你的网站的人在搜索引擎上搜索你们正好生产的一个产品,这是关键词研究的起始点,请注意,你需要找到的是你的客户
- Google这个搜索巨人很少暴露其数据中心,但在上周,Google研究员Jeff Dean在Google I/O会议上揭秘了它的部分运行情况
- 11月13日消息,据国外媒体报道,苹果周四表示,2010年将在全球新开40-50家专卖店,其中上海将新增2家。苹果表示,为了将苹果产品推广给
- 命令格式如下:用法: shutdown.exe [-i | -l | -s | -r | -a] [-f] [-m \\computerna
- 因为使用了3389登录服务器后没有及时注销或者其他情况而泛起再次登陆时提示:终端服务器超出了最大答应连接数。解决这个现像的办法有好多,例如百
- 康盛的 authcode 函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,
- 这年头.PR值可以说是经典鸡肋(或许是我个人看法吧)在SEO火爆的07-08年.因为这玩意儿在排名中的作用微乎其微.所以在意的人也越来越少.
- 开启centos8虚拟机,在图1界面中按上下键选中第一行如图1所示按'e'键,进入图2界面,移动向下方向键至“linux16
- 在本周二召开的RSA国际安全会展上,微软公司发布了其新款身份信息管理软件,微软并表示他们正与德国政府合作研制一种电子身份证,这种电子身份证可
- 谢文、keso、麦田新年对话:社会化网络和web2.0时间:2007年12月17日地点:北京罗马花园附近芝兰轩茶馆参加人:谢文、洪波(Kes
- 搭建docke-cli的调试环境在搭建docker-cli的调试环境时,踩了些坑,这里总结了一个比较顺利的方式,供大家参考。我使用的是VMw
- 什么是用户体验?“用户体验”这个术语指的是一个概念:把最终用户作为设计和开发活动的焦点,而不是系统、
- 本文主要是介绍linux中误删除程序包恢复实例,小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧。以CentOS
- 配置DNS的实例:1 所需配置文件:/etc/named.conf 系统自带,需要配置/etc/resolv.conf 系统自带,需要配置/
- 如何将自己的网站加入谷歌资讯索引中技术要求:文章的地址必须是独立的,静态的,并且除了日期外,必须包括至少三个数位;文章标题最好设置成H1,H
- 近日因测试安全产品需要,想调整mariadb的启动用户为root, 经历一番波折后终于成功!注意:以root身份启动mysql是一项非常危险