配置静态元素的过期时间

40人阅读 评论(0) 收藏 举报
分类:

配置静态元素过期时间

浏览器去访问网站时会把静态文件(图片,css , js)默认缓存在电脑里。这样下次访问时就不用再去远程下载了。缓存多长时间?浏览器会有自己的机制,清空缓存。或者在远程服务器端可以设置。

服务器通过expires模块可以定义失效时间。

服务器定义静态元素过期时间配置:

<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>

这是expires模块,开关(ExpiresActive on ),为某些类型的静态元素配置过期时间,gif 的时间为1天( ExpiresByType image/gif “access plus 1 days”),png的一天(ExpiresByType image/png “access plus 24 hours”),css的两小时( ExpiresByType text/css “now plus 2 hour”)

打开网站(111.com/logo.png),这是会显示304 
这里写图片描述

在服务器段配置元素过期时间:

编辑虚拟主机配置文件:

[root@shuai-01 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.111.com www.example.com
  #  <Directory /data/wwwroot/111.com> 
  #  <FilesMatch 123.php>
  #     AllowOverride AuthConfig 
  #      AuthName "111.com user auth" 
  #      AuthType Basic 
  #      AuthUserFile /data/.htpasswd  
  #      require valid-user 
  #  </FilesMatch>
   # </Directory> 
       <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.com$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
        </IfModule>
<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
    ErrorLog "logs/111.com-error_log"
    CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>

这是一个模块,先看这个模块文件有没有打开

[root@shuai-01 111.com]# /usr/local/apache2.4/bin/apachectl -M |grep expires

在主配置文件中加载模块

[root@shuai-01 111.com]# vim /usr/local/apache2.4/conf/httpd.conf

LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so

检查配置文件语法是否错误并重新加载

[root@shuai-01 111.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@shuai-01 111.com]# /usr/local/apache2.4/bin/apachectl graceful

这是在访问网站(111.com/logo.png)

没做过期和做了过期前后对比: 
没做过期 
这里写图片描述

做过期 
这里写图片描述

在curl里也能反映出来

[root@shuai-01 111.com]# curl -x127.0.0.1:80 111.com/logo.png -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 14:46:37 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
Last-Modified: Thu, 21 Dec 2017 14:12:26 GMT
ETag: "1914-560da4a1b6680"
Accept-Ranges: bytes
Content-Length: 6420
Cache-Control: max-age=86400
Expires: Fri, 22 Dec 2017 14:46:37 GMT
Content-Type: image/png
查看评论

redis学习记录04-redis排序命令与设置键过期命令

排序命令SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey] 转摘至 h...
  • jiuxiao199132
  • jiuxiao199132
  • 2017-04-18 12:04:01
  • 377

redis数据库队列(list),集合(set)元素设置类似过期(expire)功能

问题:项目需要为每个用户维护一个列表,存放一些数据。列表中的值有过期时间,过期的值查询可以找到也可以找不到,还会有一个验证,所以无所谓。但是redis队列只有一个整体的过期功能,没有每个元素的单独过期...
  • leean950806
  • leean950806
  • 2017-11-29 19:39:58
  • 2458

Apache: 启用mod_expires为静态资源添加默认过期

YSlow/百度站长工具检测会提醒你设置浏览器过期时间,这样可以获得更好的搜索引擎评价。在apache配置文件中启用mod_expires模块,如下即可:# Enable expires       ...
  • iefreer
  • iefreer
  • 2014-04-02 13:52:35
  • 2526

nginx设置静态页面压缩缓存和过期时间

之前一直没有整理成blog,只是有笔记,今天正好整理了一下,希望对朋友们有帮助!!! 使用nginx服务器的朋友可能都知道需要设置html静态页面缓存与页面压缩与过期时间的设置了,下面我来给各位同学...
  • lovely_1014
  • lovely_1014
  • 2017-03-14 14:12:11
  • 1550

Session过期时间配置

Tomcat  Session过期时间 Tomcat采用数据库连接池技术,当用户在一定时间不对数据库有操作时间后,就自动关闭这个连接,这是为了更好的利用资源,防止浪费宝贵的数据库连接资源。 可以采...
  • Before_Morning
  • Before_Morning
  • 2015-07-11 18:41:49
  • 1547

Redis数据过期策略探究

通过EXPIRE key seconds命令来设置数据的过期时间。返回1表明设置成功,返回0表明key不存在或者不能成功设置过期时间。 在key上设置了过期时间后key将在指定的秒数后被自动删除。被...
  • zyz511919766
  • zyz511919766
  • 2015-01-06 16:54:07
  • 19827

redis里能不能针对set数据的每个member设置过期时间?

redis里能不能针对set数据的每个member设置过期时间? 想要使用redis的set数据集记录一组数据,每一条数据的过期时间都是30天,但这些数据不是同一天加进去的。也就是说这组数据...
  • pianistOfSoftware
  • pianistOfSoftware
  • 2016-07-25 16:44:23
  • 6792

session配置的2种方法与session过期设置

web.xml sessionFilter eesofa.cn.filter.SessionFilter
  • nmj2015
  • nmj2015
  • 2017-05-18 15:37:09
  • 1564

redis学习笔记六之事物、排序、队列及键值对生失效时间

一、事物:保持要执行的命令事务一致性,要执行都执行,有一个出错,就都不执行。 1、命令格式: multi [commands] exec 2、如果命令编译成功,由于数据类型问题等原因执行是报错,...
  • u010349159
  • u010349159
  • 2017-04-20 20:56:12
  • 432

redis+spring注解方式实现配置缓存时间过期

该值 且 空闲连接>最大空闲连接数 时直接释放 -->                                                                ...
  • huangbaiping
  • huangbaiping
  • 2017-06-28 20:17:15
  • 5773
    个人资料
    持之以恒
    等级:
    访问量: 2270
    积分: 885
    排名: 5万+
    文章存档
    最新评论