[LAMP]静态元素过期时间

简介:

   当用户访问网站的时候一些图片会自动缓存在电脑浏览器缓存中,当下一次访问的时候就不必要再次加载了。当超时或更新时,会重新请求加载。

1、配置虚拟主机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@juispan ~] # vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
     DocumentRoot  "/data/www/abc.com"
     ServerName abc.com
     ServerAlias www.abc.com
     ErrorLog  "logs/abc.com-error_log"
<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 2 hours"
     ExpiresByType application /javascript  "now plus 2 hours"
     ExpiresByType application /x-shockwave-flash  "now plus 2 hours"
     ExpiresDefault  "now plus 0 min"
< /IfModule >
     SetEnvIf Request_URI  ".*\.gif$"  img
     SetEnvIf Request_URI  ".*\.jpg$"  img
     SetEnvIf Request_URI  ".*\.png$"  img
     SetEnvIf Request_URI  ".*\.bmp$"  img
     SetEnvIf Request_URI  ".*\.swf$"  img
     SetEnvIf Request_URI  ".*\.js$"  img
     SetEnvIf Request_URI  ".*\.css$"  img
     CustomLog  "|/usr/local/apache2.4/bin/rotatelogs -l logs/abc.com-access_%Y%m%d.log 86400"  combined  env =!img
< /VirtualHost >

2、检查重新加载

1
2
3
4
5
6
7
8
[root@juispan ~] # /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@juispan ~] # /usr/local/apache2.4/bin/apachectl -M |grep -i expire
[root@juispan ~] # vi /usr/local/apache2.4/conf/httpd.conf
LoadModule expires_module modules /mod_expires .so   ##取消注释启用
[root@juispan ~] # /usr/local/apache2.4/bin/apachectl -M |grep -i expire
  expires_module (shared)
[root@juispan ~] # /usr/local/apache2.4/bin/apachectl graceful

3、验证效果

1
2
3
4
5
6
7
8
9
10
11
[root@juispan abc.com] # curl -x127.0.0.1:80 abc.com/123.gif -I
HTTP /1 .1 200 OK
Date: Fri, 21 Jul 2017 11:19:21 GMT
Server: Apache /2 .4.27 (Unix) PHP /7 .1.6
Last-Modified: Fri, 21 Jul 2017 11:19:21 GMT
ETag: W/ "8c5-555b2e6023fc0"
Accept-Ranges: bytes
Content-Length: 2245
Cache-Control: max-age=86400             ##最大老化时间86400秒,也就是1天
Expires: Sat, 22 Jul 2017 11:19:21 GMT   ##过期时间
Content-Type: image /gif


















本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1952835 ,如需转载请自行联系原作者
相关文章
|
2月前
|
Shell Linux
10-20|修改当前时间
10-20|修改当前时间
|
5月前
|
缓存 JavaScript
请问如何在 keep-alive 组件中设置缓存的最大数量和过期时间
请问如何在 keep-alive 组件中设置缓存的最大数量和过期时间
|
安全 Java
JDK21更新内容:临时变量
JDK21更新内容:临时变量
|
存储 设计模式 开发者
Yii2如何在程序中自定义设置session的过期时间?底层原理是什么?
Yii2如何在程序中自定义设置session的过期时间?底层原理是什么?
404 0
|
NoSQL Java Unix
Redis系列:设置/移除键的过期时间
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 1. 数据库数量 默认情况下,Redis服务器有16个数据库,分别为db0~db15,如下图所示: 该数量是由配置文件中的databases选项决定的,默认值为16: 2.
Redis系列:设置/移除键的过期时间
|
JavaScript 前端开发 开发工具