以下设置在 /etc/httpd/conf/httpd.conf 文件末尾加入即可。(不同方式安装的httpd可能主配置文件位置不同,请自行查找)
一、mod_deflate模块:文件压缩
官方文档:http://httpd.apache.org/docs/2.2/mod/mod_deflate.html
1.检查是否加载模块
LoadModule deflate_module modules/mod_deflate.so
2.设置压缩规则
<IfModule mod_deflate.c>
#开启压缩
SetOutputFilter DEFLATE #以下文件不压缩,因为用处不大
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary #压缩所有文本类型的文件
AddOutputFilterByType DEFLATE text/* #压缩脚本文件
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript application/x-httpd-php
</IfModule>
二、mod_headers模块:过期时间设置
官方文档:http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对指定的文件配置缓存的生存时间,去除mod_headers.so模块前面的注释,以下的86400单位秒,即24小时过期。
#文件缓存时间配置
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)$">
Header set Cache-Control "max-age=86400"
</FilesMatch>
以上设置完成之后重启httpd服务,重新加载配置。
可以通过http://tool.chinaz.com/Gzips/ 工具检测是否开启gzip压缩。
可以通过谷歌浏览器开发者工具的Network选项来查看设置过期时间是否成功(查看头部请求)。