在Apache服务器上启用GZip压缩静态内容的方法

 更新时间:2015年08月05日 10:43:06   作者:迷途d书童  
这篇文章主要介绍了在Apache服务器上启用GZip压缩静态内容的方法,通过配置.htaccess文件即可轻松实现,同时附带了一些GZip的常用命令,需要的朋友可以参考下

为了优化网站的访问速度,我们可以通过对静态内容进行压缩,从而减少网页加载的时间,大大节省用户的带宽。在这篇文章中,我将介绍如何使用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

结果

看看下面的图片,有多少被压缩了。

201585103717458.jpg (533×211)

从上面的图片可以看出,实际页面大小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。


相关文章

  • Linux上创建、列出、删除Docker容器方法总结

    Linux上创建、列出、删除Docker容器方法总结

    在本篇文章中小编给大家整理了一篇关于Linux上创建、列出、删除Docker容器方法和技巧,需要的朋友们学习参考下。
    2019-03-03
  • linux服务器安装PHP扩展zip,zlib方法

    linux服务器安装PHP扩展zip,zlib方法

    下面小编就为大家分享一篇linux服务器安装PHP扩展zip,zlib方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • linux文件管理命令实例分析【权限、创建、删除、复制、移动、搜索等】

    linux文件管理命令实例分析【权限、创建、删除、复制、移动、搜索等】

    这篇文章主要介绍了linux文件管理命令,结合实例形式分析Linux文件与目录的权限控制、创建、删除、复制、移动、搜索等相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • Ubuntu16.04搭建NFS 文件共享服务器的方法

    Ubuntu16.04搭建NFS 文件共享服务器的方法

    这篇文章主要介绍了Ubuntu16.04搭建NFS 文件共享服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • VMware虚拟机安装Linux系统图文教程

    VMware虚拟机安装Linux系统图文教程

    这篇文章主要为大家详细介绍了VMware虚拟机安装Linux系统教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Vim中查找替换及正则表达式的使用详解

    Vim中查找替换及正则表达式的使用详解

    Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。下面这篇文章主要给大家介绍了关于Vim中查找替换及正则表达式使用的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • centos7云主机系统下挂载磁盘的方法

    centos7云主机系统下挂载磁盘的方法

    本篇文章主要介绍了centos7云主机系统下挂载磁盘的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Apache Shiro 使用手册(二) Shiro 认证

    Apache Shiro 使用手册(二) Shiro 认证

    认证就是验证用户身份的过程。在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法。最常见的“实体/凭证”组合便是“用户名/密码”组合
    2014-06-06
  • 阿里云OSS访问权限配置(RAM权限控制)实现

    阿里云OSS访问权限配置(RAM权限控制)实现

    这篇文章主要介绍了阿里云OSS访问权限配置(RAM权限控制)实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Apache中利用mod_rewrite实现防盗链

    Apache中利用mod_rewrite实现防盗链

    自从上次在博客中推荐《you are my everything》以后,服务器的流量突然多了起来,有几次甚至导致了VPS的当机。后来经过分析:盗链这个MP3的网页包括诸如QQ空间、校内网空间、更有甚者还放到了Taobao小店、个人博客也有不少,全部作为了背景音乐,并且导致各种爬虫疯狂抓取这个文件。找到了问题原因就只有一个办法了,就是利用Apache的mod_rewrite模块把盗链行为拒之门外。
    2008-04-04

最新评论