您现在的位置是:首页 > 学无止境 > Web网站首页Web Apache服务器mod_expires模块配置缓存

Apache服务器mod_expires模块配置缓存

  • 莫愁
  • Web
  • 2019-03-24
简介今天在服务器上做了一些简单的配置,主要是图片(jpg,jpeg,png,gif),css,js,flash这几块。我目前用的WEB服务器是Apache。
字数 1260.5

为什么要用mod_expires这个?

缓存技术在在网站应用中非常重要,在减少服务器请求压力和用户浏览速度加块方面有着功不可没的功劳。

目前网站缓存主要分为5部分:

1. 服务器缓存:主要是基于web反向代理的静态服务器nginxsquid,还有apache2mod_proxymod_cache模块

2. 浏览器缓存:包括页面html缓存和图片jscss等资源的缓存

3. PHP缓存:有很多免费的PHP缓冲加速工具,如apc eaccerlertor

4. 内存缓存:主要是采用memcache这种分布式缓存机制

5. 数据库缓存:通过配置数据库缓存,以及数据存储过程,连接池技术等

本篇主要研究浏览器缓存这块~

先上一张图:

Apache服务器mod_expires模块配置缓存

从上图:我们可以知道浏览器缓存重要分为两个部分:

1. 页面html的缓存

2. 图片,css,js,flash等缓存

浏览器缓存是基于把页面信息保存到用户本地电脑硬盘里,服务器缓存是基于把用户访问的页面保存到服务器上的硬盘里。

先了解一下页面缓存的原理

页面缓存状态是由http header决定的,一个浏览器请求信息,一个是服务器响应信息。主要包括Pragma: no-cacheCache-Control、 Expires、 Last-ModifiedIf-Modified-Since。其中Pragma: no-cache由HTTP/1.0规定,Cache-Control由HTTP/1.1规定。

相关参数说明:

Cache-Control: private/public Public:响应会被缓存,并且在多用户间共享。 Private 响应只能够作为私有的缓存,不能再用户间共享。

Cache-Control: no-cache:不进行缓存

Cache-Control: max-age=x:缓存时间 以秒为单位

Cache-Control: must-revalidate:如果页面是过期的 则去服务器进行获取。

Expires:显示的设置页面过期时间

Last-Modified:请求对象最后一次的修改时间 用来判断缓存是否过期 通常由文件的时间信息产生

If-Modified-Since:客户端发送请求附带的信息 指浏览器缓存请求对象的最后修改日期 用来和服务器端的Last-Modified做比较

Etag:ETag是一个可以 与Web资源关联的记号(token),和Last-Modified功能才不多,也是一个标识符,一般和Last-Modified一起使用,加强服务器判断的准确度

下面了解一下图片,css,js,flash等缓存

这个主要通过服务器的配置来实现这个技术,我们使用的是apache服务器,可以使用mod_expires模块来实现:

编辑httpd.conf配置:添加下面内容


配置好以后,你再访问网站时,打开控制台看下Network里的JS,CSS,Img,随便点开一个文件看看它的Response Headers里的Cache-Control: max-age=172800(Tips: 172800即我们设置的2天)简单解释:第一句(ExpiresActive on) – 表示开启缓存服务,第二句(ExpiresByType …) – 表示某种类型的文件,默认缓存时间是2天

是不是如下图:

Apache服务器mod_expires模块配置缓存

Apache服务器mod_expires模块配置缓存

如果您用的是新浪云SAE, 可以直接在应用配置AppConfig中配置缓存时间!

顺带讲一下:

appconfig 提供用户自定义 web 服务器配置的功能。(同以前的config.yaml

目前可以自行配置的功能包括:目录默认页面、自定义错误页面、压缩、页面重定向、页面过期、设置响应header、基于主机和认证的访问控制。

补充说明:

from memory cache:字面理解是从内存中,其实也是字面的含义,这个资源是直接从内存中拿到的,不会请求服务器一般已经加载过该资源且缓存在了内存当中,当关闭该页面时,此资源就被内存释放掉了,再次重新打开相同页面时不会出现from memory cache的情况

from disk cache:同上类似,此资源是从磁盘当中取出的,也是在已经在之前的某个时间加载过该资源,不会请求服务器但是此资源不会随着该页面的关闭而释放掉,因为是存在硬盘当中的,下次打开仍会from disk cache

资源本身大小数值:当http状态为200是实实在在从浏览器获取的资源,当http状态为304时该数字是与服务端通信报文的大小,并不是该资源本身的大小,该资源是从本地获取的


转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/133.html”。

文章评论

    • 评论
    人参与,条评论

技术在线

服务时间

周一至周日 12:00-22:00

关闭下雪
关闭背景特效