Linux Apache设置压缩及缓存
压缩文件:
编辑apache模块
vim/etc/httpd/conf.modules.d/00-base.conf
确保以下三个模块没有被注释
LoadModuleheaders_modulemodules/mod_headers.so
LoadModuledeflate_modulemodules/mod_deflate.so
LoadModulefilter_modulemodules/mod_filter.so
注意:也可以把三个模块放到/etc/httpd/conf/httpd.conf文件里,模块只能在一个文件中加载
设置压缩规则
vim/etc/httpd/conf/httpd.conf
末尾添加
AddOutputFilterByTypeDEFLATEapplication/javascript
AddOutputFilterByTypeDEFLATEapplication/rss+xml
AddOutputFilterByTypeDEFLATEapplication/vnd.ms-fontobject
AddOutputFilterByTypeDEFLATEapplication/x-font
AddOutputFilterByTypeDEFLATEapplication/x-font-opentype
AddOutputFilterByTypeDEFLATEapplication/x-font-otf
AddOutputFilterByTypeDEFLATEapplication/x-font-truetype
AddOutputFilterByTypeDEFLATEapplication/x-font-ttf
AddOutputFilterByTypeDEFLATEapplication/x-javascript
AddOutputFilterByTypeDEFLATEapplication/xhtml+xml
AddOutputFilterByTypeDEFLATEapplication/xml
AddOutputFilterByTypeDEFLATEapplication/x-httpd-php
AddOutputFilterByTypeDEFLATEapplication/x-httpd-fastphp
AddOutputFilterByTypeDEFLATEfont/opentype
AddOutputFilterByTypeDEFLATEfont/otf
AddOutputFilterByTypeDEFLATEfont/ttf
AddOutputFilterByTypeDEFLATEimage/svg+xml
AddOutputFilterByTypeDEFLATEimage/x-icon
AddOutputFilterByTypeDEFLATEtext/css
AddOutputFilterByTypeDEFLATEtext/html
AddOutputFilterByTypeDEFLATEtext/javascript
AddOutputFilterByTypeDEFLATEtext/plain
AddOutputFilterByTypeDEFLATEtext/xml
#Removebrowserbugs(onlyneededforreallyoldbrowsers)
BrowserMatch^Mozilla/4gzip-only-text/html
BrowserMatch^Mozilla/4\.0[678]no-gzip
BrowserMatch\bMSIE!no-gzip!gzip-only-text/html
#SetEnvIfNoCaseRequest_URI.(?:gif|jpe?g|png)$no-gzipdont-vary#设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
HeaderappendVaryUser-Agent
压缩率一般都大于70%
压缩率检测(http://tool.chinaz.com/Gzips/)只能在pc端检测
设置缓存:
vim/etc/httpd/conf.modules.d/00-base.conf
确保以下模块没有被注释
LoadModuleheaders_modulemodules/mod_headers.so#第一种缓存方式
LoadModuleexpires_modulemodules/mod_expires.so#第二种缓存方式
注意:也可以把这个模块放到/etc/httpd/conf/httpd.conf文件里,模块只能在一个文件中加载
设置缓存规则
vim/var/www/html/.htaccess
末尾添加
第一种缓存方式
FileEtagINodeMtimeSize
第二种缓存方式
#缓存有效时间1月
HeadersetCache-Control"max-age=2592000,public"
HeadersetCache-Control"max-age=2592000,public,must-revalidate"
注意:max-age为缓存时间,单位秒,按需修改
第三种缓存方式
vim/etc/httpd/conf/httpd.conf
添加以下内容
ExpiresActiveOn
#css文件缓存2592000/3600/24=1月
ExpiresByTypetext/cssA2592000
#js文件缓存2592000/3600/24=1月
ExpiresByTypeapplication/x-javascriptA2592000
ExpiresByTypeapplication/javascriptA2592000
#html文件缓存2592000/3600/24=1月
ExpiresByTypetext/htmlA2592000
#图片文件缓存2592000/3600/24=1月
ExpiresByTypeimage/jpgA2592000
ExpiresByTypeimage/jpegA2592000
ExpiresByTypeimage/gifA2592000
ExpiresByTypeimage/pngA2592000
ExpiresByTypeimage/icoA2592000
ExpiresByTypeimage/x-iconA2592000
#文件默认缓存1月
ExpiresDefault"accessplus30days"
注意:以上方式,三选一
重启apache服务
servicehttpdrestart
注意:apache设置压缩和缓存都会增加服务器的内存压力,但设置压缩和缓存之后,网站的访问速度会有所提高