千家信息网

如何在 apache 中开启 gzip 压缩服务

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,服务器设置 gzip 压缩是 web 开发里很普遍的做法。假设你要请求一个 100k 的文件,网络传输速度为 50k/s,需要 2s 才能得到数据,但是如果在服务器设置了 gzip 压缩,将服务端的文
千家信息网最后更新 2024年11月27日如何在 apache 中开启 gzip 压缩服务

服务器设置 gzip 压缩是 web 开发里很普遍的做法。假设你要请求一个 100k 的文件,网络传输速度为 50k/s,需要 2s 才能得到数据,但是如果在服务器设置了 gzip 压缩,将服务端的文件压缩到了 50k(实际上的压缩率往往小于 50%),这时候只需 1s 就能得到数据,然后在客户端解压即可。

可以对比下同一个文件在开启 gzip 前后的大小。

gzip 压缩前

gzip 压缩后

那么如何在服务端开启 gzip 服务呢?这里以 apache 为例简单介绍下。

打开 apache 的 "httpd.conf" 文件,比如我的是在 "C:\wamp\bin\apache\Apache2.2.21\conf" 目录下。找到以下这一行,将它前面的注释(#)去掉:

复制代码LoadModule deflate_module modules/mod_deflate.so

很多参考文件都提到同时要对 LoadModule headers_module modules/mod_headers.so 去掉注释,说 "如果不开启这个,那网站就不能正常显示了" ,不过我在测试过程中没有去掉也没有问题。

接着再添上以下代码:

复制代码# 告诉 apache 对传输到浏览器的内容进行压缩SetOutputFilter DEFLATE# 压缩等级 9DeflateCompressionLevel 9

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

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

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

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

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

复制代码# 压缩等级 9DeflateCompressionLevel 9# 压缩类型 html、xml、php、css、jsAddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-phpAddOutputFilter DEFLATE js css

修改好后,保存 httpd.conf 文件,记得重启 apache,再刷新浏览器看请求,应该已经生效了!


文件 图片 服务 代码 等级 浏览器 传输 浏览 之间 内容 实际 数据 服务器 格式 注释 开发 测试 不对 最低 最高 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术是做什么的 信息网络安全测试题 虚拟机的数据库连接字符串在哪 数据库中rs什么意思 服务器 百度百科 趣步类软件开发需要多久 技术开发属于软件开发吗 绿皮书网络技术有限公司 重要服务器操作权限管理制度 sql数据库设定参数查询 软件生产与软件开发一样吗 2017年医保数据库 软件开发有没有专门学的软件 网络安全薪资排行 服务器防护防止ddos攻击 服务器的订购属计入什么会计科目 工控服务器散热器加工 php 数组插入数据库 帝国神话如何创建本地服务器 很多人问我服务器的32k是怎么弄的 创逸app连接服务器超时 东莞搬家平台软件开发定制价格 美国对于服务器的管理制度 网络数据库的评价 魔兽争霸3连接不上服务器 数据库开发所需流程 数据库去掉某一个字符 济宁联想服务器电话 网络安全合规评估指南 随机单方块生存服务器推荐
0