135956557-小三IT自学群,任何IT问题都可以一起讨论,各种服务网络等等

-------------------------------------------------------------------------------
 gzip可以加速网站,压缩比率可以80%-40%,Apache2之后的版本叫mod_deflate

Apache优化-gzip压缩-mod_deflate_apache优化


没有压缩

Apache优化-gzip压缩-mod_deflate_apache优化_02


启用了压缩
 使用deflate的话需要开启两个模块
 LoadModule deflate_module modules/mod_deflate.so
 LoadModule headers_module modules/mod_headers.so
 压缩比率可以设置1-9  建议不要太高否则会占用过多CPU
 使用DOS方式安装没有的模块
 apxs -c -i -a /gao/httpd-2.4.23/modules/metadata/mod_headers.c 
i 执行安装
a 自动增加一个loadmodule到httpd.conf中以此使用模块
c执行编译操作
 配置项,直接写在http中最下就可以
 <IfModule mod_deflate.c>

        DeflateCompressionLevel  9    # 压缩程度的等级,预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。

        SetOutputFilter DEFLATE   #设置输出过滤器,对输出启用压缩,必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩

        #AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php

        #AddOutputFilterByType DEFLATE p_w_picpath/*

        AddOutputFilterByType DEFLATE  text/*  #设置对文件是文本的内容进行压缩,例如text/html  text/css  text/plain等.

        AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript  #对javascript文件进行压缩

        AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp #对php类型的文件进行压缩.

        SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary  #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩。注:?:表示不会捕获 ( )里内容了

 

        SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary  #同上,就是设置不对exe,tgz,gz等的文件进行压缩

        SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary #同上就是设置不对pdf,avi,mp3等的文件进行压缩

</IfModule>
 #设置日志输出!

DeflateFilterNote Input input_info

#声明输入流的byte数量

DeflateFilterNote Output output_info

 #声明输出流的byte数量

DeflateFilterNote Ratio ratio_info

 #声明压缩的百分比

LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate

 #声明日志格式

CustomLog logs/deflate_log.log deflate
---------------------------------------------------------------------

配置mod_expires模块

这个非常有用的优化,可以减少很多重复请求,让用户将请求结果cache在本地,不向服务器发出请求,但是注意更新快的文件不要cache

模块控制服务器应答的expires头内容和cache-control头的max-age指令,有效期可以设置为相对于源文件的最后修改或者客户端的访问时刻.

启用expire缓存模块

LoadModule expires_module modules/mod_expires.so

添加expires.c规则

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType text/css "now plus 1 month"

ExpiresByType application/x-javascript "now plus 5 day"

ExpiresByType p_w_picpath/jpeg "access plus 1 month"

ExpiresByType p_w_picpath/gif "access plus 1 month"

ExpiresByType p_w_picpath/bmp "access plus 1 month"

ExpiresByType p_w_picpath/x-icon "access plus 1 month"

ExpiresByType p_w_picpath/png "access plus 1 minutes"

ExpiresByType application/x-shockwave-flash "access plus 1 month"

ExpiresDefault "now plus 0 minutes"

</IfModule> 

ExpiresDefault ExpiresByType 指令同样能够用易懂的语法格式进行定义:

ExpiresDefault "<base> [plus] {<num> <type>}"
ExpiresByType type/encoding "<base> [plus] {<num> <type>}"

其中<base>是下列之一:

· access

· now (等价于'access ')

· modification

plus 关键字是可选的。<num>必须是整数,<type>是下列之一:

· years

· months

· weeks

· days

· hours

· minutes

· seconds

例如,下列3个指令都表示文档默认的有效期是一个月:

ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"

有效期可以通过增加"<num> <type>"子句进一步调整:

ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType p_w_picpath/gif "modification plus 5 hours 3 minutes"

注意,如果你使用基于最后修改日期的设置,"Expires:"头将不会 被添加到那些并非来自于磁盘文件的内容。这是因为这些内容并不存在"最后修改时间"的属性。


# GIF有效期为1个月(秒数)
ExpiresByType p_w_picpath/gif A2592000 
ExpiresByType p_w_picpath/jpeg A2592000 
ExpiresByType p_w_picpath/png A2592000 
ExpiresByType p_w_picpath/x-icon A2592000 
ExpiresByType application/x-javascript A604800 
ExpiresByType text/plain A604800 
# HTML文档的有效期是最后修改时刻后的一星期 
ExpiresByType text/html M604800 
</IfModule>

"M"表示源文件的最后修改时刻,"A"表示客户端对源文件的访问时刻。后面的时间则以秒计算。

有关 Apache Expires Module 的介绍,可以参阅其官方文档:

http://httpd.apache.org/docs/2.4/mod/mod_expires.html