网站缓存设置:expires和max-age属性教程Server

印迹发布于:2020-2-9 906

简介

nignx、tomcat以及apache中如何设置max-age或expires参数进行简单的讲解

分为三块来讲,针对apache,tomcat,nginx

1. apache设置max-age或expires

这里需要修改.htaccess文件。

<IfModule mod_headers.c>
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
        Header set Cache-Control "max-age=604800, public"
    </FilesMatch>
<FilesMatch "\.(xml|txt)$">
    Header set Cache-Control "max-age=18000, public, must-revalidate"
</FilesMatch>
<FilesMatch "\.(html|htm|php|shtml)$">
    Header set Cache-Control "max-age=3600, must-revalidate"
</FilesMatch>
</IfModule>
2. tomcat中设置max-age或expires

首先pom.xml需要引入catalina包,如果不是使用的maven,请自行搜索下载jar包

<dependency>
   <groupId>org.apache.tomcat</groupId>
   <artifactId>tomcat-catalina</artifactId>
   <version>7.0.61</version>
</dependency>

注意,版本必须是7.0.61以上的,如果你不是maven需要引入jar包及相关的依赖包。

然后找到你j2ee项目中的web.xml文件,在文件中加入如下内容

 <filter>
      <filter-name>ExpiresFilter</filter-name>
      <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
      <init-param>
          <param-name>ExpiresByType text/html</param-name>
          <param-value>access plus 1 minutes</param-value>
      </init-param>
      <init-param>
          <param-name>ExpiresByType image</param-name>
          <param-value>access plus 10 years</param-value>
      </init-param>
      <init-param>
          <param-name>ExpiresByType text/css</param-name>
          <param-value>access plus 10 months</param-value>
      </init-param>
      <init-param>
          <param-name>ExpiresByType application/javascript</param-name>
          <param-value>access plus 10 months</param-value>
      </init-param>
      <init-param>
          <param-name>ExpiresByType application/x-unknown-content-type</param-name>
          <param-value>access plus 10 years</param-value>
      </init-param>
  </filter>
  <filter-mapping>
      <filter-name>ExpiresFilter</filter-name>
      <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

以上内容分别对js脚本、css样式、图片以及html页面进行了缓存设置。

其中param-value的值可以设置为比如access plus 1 month 15 days 2 hours

不可以使用以下的任意的类型或类型组合

years
months
weeks
days
hours
minutes
seconds

PS:再次提醒catalina的版本要7.0.61以上的才行,低版本里未实现filters.ExpiresFilter类。

3.nginx设置max-age或expires

在server节点下加入如下代码

 location  ~* \.(gif|jpg|png|bmp)$ {
   expires 10d;
  }

这里是设置图片的过期时间为10天。如果你的图片基本不更新可以设置的时间长一些。



http://www.virplus.com/thread-1202.htm
转载请注明:2020-2-9 于 VirPlus 发表

推荐阅读
最新回复 (0)

    ( 登录 ) 后,可以发表评论!

    返回