我们知道做好负载均衡对网站的正常运行,用户体验相当重要。在负载均衡中有一个必须要做的事情就是给服务器开启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.soLoadModule 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="htmhtmltxt"HcOnDemandCompLevel="10"HcPriority="1"HcScriptFileExtensions="aspdllexe"></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;

更多专业前端知识,请上 【猿2048】www.mk2048.com

服务器端如何开启GZIP压缩功能相关推荐

  1. Apache开启GZIP压缩功能方法

    Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台,本文讲解了如何开启Apache平台上的Gzip压缩功能 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Li ...

  2. Nginx服务器开启gzip压缩功能额必要性

    2019独角兽企业重金招聘Python工程师标准>>> 一般情况下压缩后的html.css.js.php.jhtml等文件,大小能降至原来的25%,也就是说,原本一个100k的htm ...

  3. nginx的gzip压缩功能

    我们在开发网站的时候,应该要考虑到pv,因为pv比较大可能会造成服务器带宽不够用,进而导致用户体验变差. 这个时候我们就可以考虑用nginx的gzip功能. 在nginx中开启gzip压缩功能很简单, ...

  4. linux系统如何开启网页是否压缩,Windows或Linux下Apache开启GZIP压缩 | kTWO-个人博客...

    在搭建web服务器的时候有时因为服务器带宽比较小,而网站内容较多,内容加载较慢,此时建议站长们开启Apache的GZIP压缩功能,注意:开启GZIP之后会增加服务器的压力,不过一般服务器还是可以承受的 ...

  5. Nginx gzip压缩功能及参数详解

    gzip 压缩功能 nginx提供了对文件内容压缩的功能,允许将内容在发送到客户端之前根据具体的策略进行压缩从而节约带宽.这个功能和Apache的mod_deflate压缩功能类似.依赖于ngx_ht ...

  6. nginx 开启gzip压缩

    一.背景介绍        历史遗留问题,在项目创建初期前端力量薄弱,网站大部分image.js.css与业务应用存放在一起,未上传到CDN中,最终导致网站访问缓慢,经过排查由于静态资源大量消耗带宽. ...

  7. godaddy php5.ini,Godaddy主机如何开启GZIP压缩 | Godaddy美国主机中文指南

    为什么要开启GZIP压缩呢?原因很简单:使用GZIP压缩技术能让用户感受更快的速度.这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到 ...

  8. Apache开启Gzip压缩,LAMP网页压缩

    源自http://hi.baidu.com/mrlbz/blog/item/69447759beedafc19d82046b.html 我Wordpress的主机为LAMP架构,即Linux+ Apa ...

  9. Nginx中Gzip压缩功能的实例配置

    Gzip压缩功能的实例配置 gzip on; #开启gzip功能 gzip_types *; #压缩源文件类型,根据具体的访问资源类型设定 gzip_comp_level 6; #gzip压缩级别 g ...

最新文章

  1. Java 取得文件名的后缀
  2. GCD Game 博弈论-Nim-质因数应用-质因数个数预处理
  3. debounceTime 和 throttleTime 的弹珠图
  4. java中给组合框加监听器,如何区分ActionEvent中的多个组合框
  5. 南开大学计算机原理在线作业,南开大学20秋《计算机原理》在线作业-1(参考答案)...
  6. linux系统如何创建python文件_Linux搭建python环境详解
  7. 剑指offer——面试题11:数值的整数次方
  8. SpringBoot整合JWT实现前后端Token验证
  9. VOIP流中使用CNN-LSTM下对QIM的隐写分析方法
  10. [gmoj 3505]【NOIP2013模拟11.4A组】积木
  11. Max OS 打开 JD-GUI 报错
  12. 浅谈计算机网络及交换机基础配置
  13. 基于fmincon函数的最优化计算
  14. 环洋市场调研-2021年全球企业估值服务行业调研及趋势分析报告
  15. 绝对值信号的编码器有哪些信号输出(三、四)
  16. HTTP网络连接相关知识整理(三):网络错误异常
  17. Javascript学习笔记(犀牛书1、2章)
  18. ubuntu服务器的安装(转载)
  19. word通配符用原文替换原文加某以内容的方式
  20. 根据指定字母,顺序输出若干相邻字母 C语言

热门文章

  1. 嵌套套娃,MySQL子查询,单行与多行子查询,相关和不相关(关联)子查询,完整详细可收藏
  2. 小程序服务器api接口,百度智能小程序API 开放接口
  3. 管理任务执行-有效执行
  4. hadoop hdfs (java api)
  5. 搭建PHP本地服务器(XAMPP)
  6. mysql 中 and和or 一起使用和之间的优先级
  7. PropertyGrid 控件使用方法
  8. 域模型向左走(充血),向右走(贫血)
  9. mysql安装模块解释_MySQL的模块不能安装的解决方法_MySQL
  10. ps法线贴图插件_法线与置换贴图原理讲解以及烘焙制作!