在Apache服务器上启用GZip压缩静态内容的方法
作者:迷途d书童 发布时间:2023-07-31 07:21:15
为了优化网站的访问速度,我们可以通过对静态内容进行压缩,从而减少网页加载的时间,大大节省用户的带宽。在这篇文章中,我将介绍如何使用Apache和.htaccess文件进行静态内容压缩。
首先让我介绍一下,我们可以使用两种不同的方法压缩内容:GZip 和 deflate。
介绍
GZip方法在早期的apache版本中使用(在Apache 1.3之前)。但在那之后apache引入了deflate方法,相比GZip并没有太大的效果(但仍是非常好的)。然而,GZip在apache 1.3之后不再提供更多的支持。因此,你的Apache版本必须大于1.3,如果没有,你必须升级到最新版本的Apache。
在使用压缩之前,你必须启用apache的mod_deflate模块。要启用这个模块,你只需要从httpd.conf文件去掉这个模块行。
启用这个模块后,你的服务器准备好提供压缩的内容。但是,服务器只有当它接收到来自客户端的相应头文件时,才会创建压缩内容。所以,现在你需要将下面的代码放置到你网站的htaccess文件,才能通知服务器提供压缩的内容。
.HTACCESS代码
<ifmodule mod_deflate.c="">
# force deflate for mangled headers
# developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<ifmodule mod_setenvif.c="">
<ifmodule mod_headers.c="">
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</ifmodule>
</ifmodule>
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
<ifmodule filter_module="">
FilterDeclare COMPRESS
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
FilterChain COMPRESS
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
</ifmodule>
<ifmodule !mod_filter.c="">
# Legacy versions of Apache
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml
AddOutputFilterByType DEFLATE application/atom+xml
AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font-ttf font/opentype
</ifmodule>
</ifmodule>
将上面的代码放置在你的htaccess文件之后,看看你网站的请求头部。你可以看到一个额外的头“Accept-Encoding“。这意味着请求的客户端能够处理给定的压缩类型的内容,并将提供压缩内容。
Accept-Encoding:gzip,deflate,sdch
结果
看看下面的图片,有多少被压缩了。
从上面的图片可以看出,实际页面大小707KB,使用压缩后是401KB。因此,它最终会提高你的网站的性能。
我强烈建议你把网站静态内容做压缩处理,因为没有理由不这么做,这是Web开发的一个最佳实践。
然后附上Gzip的一些基本的常用命令:
1.命令格式:
gzip[参数][文件或者目录]
2.命令功能:
gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。
3.命令参数:
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把压缩后的文件输出到标准输出设备,不去更动原始文件。
-d或--decompress或----uncompress 解开压缩文件。
-f或--force 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-h或--help 在线帮助。
-l或--list 列出压缩文件的相关信息。
-L或--license 显示版本与版权信息。
-n或--no-name 压缩文件时,不保存原来的文件名称及时间戳记。
-N或--name 压缩文件时,保存原来的文件名称及时间戳记。
-q或--quiet 不显示警告信息。
-r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或----suffix<压缩字尾字符串> 更改压缩字尾字符串。
-t或--test 测试压缩文件是否正确无误。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
猜你喜欢
- 标签在web1.0时代可能只是网页的装饰,内容的摆设,技术的鸡肋。但在web2.0时代,标签将是整个网站内容关联体系最重要的一环。可以负责任
- 在默认情况下,我们一般给每个站点的web目录的权限为IIS用户的读取和写入,如图:但是我们现在为了将SQL注入,上传漏洞全部都赶走,我们可以
- 在网上现实中常常有人说,随着我国网民网络技术的提高,网址导航站已经没有生存的必要了。真是这样吗?本以为,网址导航站发为重要的上网工具,不但不
- Blogger.com网站首页截图北京时间3月6日消息,综合海外媒体报道,Blogger.com是全球最大的博客网站,被称为互联网诞生15年
- 报告称三分之一美国网民浏览YouTube网站,惊人的数字不是吗?全球互联网的风向标就在美国,web2.0在国内的盛行来源于其在美国的风光。2
- 2009年9月8日,专业的博客软件提供商北京傲博致远软件隆重推出Oblog.NET2.0版。至此,饱含数万OBLOG站长热切期盼和支持的.N
- 中国雅虎开始逐渐更换各个频道的 Logo,将原来红色的 Logo 更换为紫色的 Logo,和 Yahoo! 相一致。而且页眉的导航链接也更换
- 经过三个月的等待,终于等来了DMOZ重新开放登录目录,DMOZ大概是06年十月份停止收录网站的,今天闲逛到dmoz网
- 日前,新闻出版总署对已出版运营的200多款包括网页游戏在内的网络游戏进行集中审查。《美国1930》等45款未经审批的境外网络游戏被责令关闭,
- 架设sendmail服务器 这次我们来学习Linux系统中的Sendmail服务器的配置。(邮件服务器的IP192.168.1.2 主机域名
- 个人网站,通常意义上说是以个人的名义,单个人或几个人小作坊做的网站,也从另外的诠释上泛指草根网站。个人网站不缺创意,不缺流量,不缺技术,不缺
- Linux的screen命令不错,习惯了你会觉得它比windows的任务栏好用多了。下面是我的.screenrc,仅供参考Linux的scr
- jenkins 配置用户角色权限需要安装插件 Role Strategy Plugin1.安装 Role Strateg
- dedecms默认在列表是无法调用tag标签的,经过各位版主们的帮助,现给大家提供出种方法方法1:在列表需要的位置加入下列代码[field:
- 我们学校最近将MAC和IP进行了捆绑,又在服务器(Win2K)上进行了上网时间的限制,真是烦死人了,我想我可是一个从不受限制的人啊,怎么可以
- 目前,在广大站长的殷切期盼下,康盛创想(Comsenz)旗下的UCenter Home(简称UCHome)体验站陆续推出了涂鸦版、凑热闹、在
- WEB3.0时代已悄然降临在我们站长的身边,而这个时代我们靠什么赚钱呢?这是一个新的研究课题.可是在WEB2.0普遍流行的当今互联网江湖,可
- 代码高亮显示对于像我这个样的经常要写代码的博客很实用,我也一直在找,今天终于发现了一个效果不错的代码高亮显示插件。这个插件只需要按照配置一次
- 作为Internet上的FTP服务器,系统的安全性是非常重要的,这是建立FTP服务器者所考虑的第一个问题。其安全性主要包括以下几个方面:一、
- 子曰:三思而后行。意思就是说表示多次。指经过反复考虑,然后再去做。网页title对SEO越来越重要,这点相信大家应该都清楚,所以现在很多SE