设置静态内容缓存,就是让网页里的图片还有js、css这些资源、包括页面缓存到本地而不是每次都去服务器请求资源,而是设置规定的时间,这样做可以减轻服务器的带宽压力和使网页打开速度加快,这样以来用户体验就会好一些。
那么如何来设置缓存时间呢?
先确认apache是否加载mod_expires
# /usr/local/apache2/bin/apachectl -M|grep -i expires
expires_module (shared) //如没有任何显示,说明需要先编译expires模块
编译一个mod_expires.c 参考以下:
编译:
apxs2 -c mod_expires.c
安装:
apxs2 -i mod_expires.la
或,一句话命令:
§ apxs2 -iac mod_expires.c
执行完成后,expires模块被安装到:/usr/lib/apache2/modules,这里可能会报告权限错误,请确保有管理员权限方可执行安装模块动作。
在apache虚拟主机加入以下代码:
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2hours"
ExpiresByType application/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2hours"
ExpiresDefault "now plus 0 min"
< /IfModule>
检测语句:
# /usr/local/apache2/bin/apachectl -t
Syntax OK
重加载配置:
# /usr/local/apache2/bin/apachectl graceful
使用curl命令测试:
# echo 'asdadasdasd'>aaa.txt //在网站目录下创建txt文件
# touch abcd.jpeg //创建jpeg文件
# curl -u aming:123456 -x127.0.0.1:80 www.1.com/aaa.txt -I
HTTP/1.1 200 OK
Date: Fri, 31 Jul 2015 14:46:52 GMT
Server: Apache/2.4.12 (Unix) PHP/5.5.5
Last-Modified: Fri, 31 Jul 2015 14:46:00 GMT
ETag: "c-51c2ce0e6cdbe"
Accept-Ranges: bytes
Content-Length: 12
Cache-Control: max-age=0
Expires: Fri, 31 Jul 2015 14:46:52 GMT
Content-Type: text/plain
# curl -u aming:123456 -x127.0.0.1:80 www.1.com/abcd.jpeg -I
HTTP/1.1 200 OK
Date: Fri, 31 Jul 2015 14:47:43 GMT
Server: Apache/2.4.12 (Unix) PHP/5.5.5
Last-Modified: Fri, 31 Jul 2015 14:47:30 GMT
ETag: "0-51c2ce6388f1e"
Accept-Ranges: bytes
Cache-Control: max-age=86400
Expires: Sat, 01 Aug 2015 14:47:43 GMT
Content-Type: image/jpeg
说明配置完成!