Apache模块 mod_expires

做笔记,上来就直接干了

当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求。按ctrl+F5,浏览器会清空本地缓存,重新请求资源。 
Expires是HTTP/1.0的缓存头, Cache-Control: max-age是HTTP/1.1是用来进行HTTP缓存的头。 
Expires指定了资源过期的绝对时间,GMT格式,Cache-Control: max-age指定了资源过期的相对时间,单位是秒。 
在支持HTTP/1.1的浏览器上,如果发送两个头,那么Cache-Control: max-age会覆盖掉Expires; 
在支持HTTP/1.0的浏览器上,即使发送了两个头,但是只有Expires会起作用,所以为了兼容老的浏览器,还是要同时发送这两个头。

设置HTTP缓存,需要安装expires_module,其会发送Expires和Cache-Control: max-age两个HTTP头。配置如下:

<IfModule expires_module>
    ExpiresActive On
    ExpiresByType application/x-javascript  "access plus 30 days"
    ExpiresByType text/css  "access plus 30 days"
    ExpiresByType image/gif  "access plus 30 days"
    ExpiresByType image/jpeg  "access plus 30 days"
    ExpiresByType image/png  "access plus 30 days"
</IfModule>

两种写法

ExpiresByType image/gif A2592000
# HTML文档的有效期是最后修改时刻后的一星期
ExpiresByType text/html M604800

ExpiresByType application/x-javascript "access plus 30 days"表示对js资源设置ExpiresCache-Control: max-age头,其中Expires的值是以客户端访问资源的时间为基准的后30天,Cache-Control: max-age的值是3600x24x30秒。

两种写法是有区别的,在前面用squid 缓存的时候

修改时间如果短很容易过期,过期后squid会一直请求后端apache

比如

squid的日志

[27/Sep/2015:10:51:12 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:10:57:00 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:10:58:03 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:00:34 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:00:52 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:01:13 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:04:13 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:06:29 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:06:39 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:07:09 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:08:27 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:12:34 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

修改后

[27/Sep/2015:11:14:53 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:16:47 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:19:44 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:24:48 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:26:09 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:27:36 TCP_IMS_HIT:HIER_NONE

后端apache几乎没有日志,以前一直304

时间: 2024-10-26 21:41:55

Apache模块 mod_expires的相关文章

APACHE 模块 详解

Apache(2)                       对configure参数的说明 配置帮助表: -h, --help 显示帮助信息 display this help and exit --help=short 用short参数将只显示正在运行的当前脚本的选项,而不能列出适用于Apache配置脚本所运行的外部配置脚本的选项 display options specific to this package --help=recursive 使用recursive参数将显示所有程序包的

服务器架设笔记——Apache模块开发基础知识

通过上节的例子,我们发现Apache插件开发的一个门槛便是学习它自成体系的一套API.虽然Apache的官网上有对这些API的详细介绍,但是空拿着一些零散的说明书,是很难快速建立起一套可以运行的系统.(转载请指明出于breaksoftware的csdn博客) 为了实现最基础的URL解析等功能,我把<Apache模块开发指南>一书粗略了翻看了两遍,以利于迅速了解Apache模块编程的相关知识.至于书中具体的知识点,我并不在此赘述.但是为了便于大家了解之后遇到的各种相关的知识点,我大致罗列几条(摘

windows环境下使用apxs编译添加apache模块

windows环境下使用apxs编译添加apache模块 简介说明:本文使用mod_limitipconn模块为例. 环境: windows7 x86系统 apache 2.4.18 目标: 在windows环境下,利用mod_limitipconn0.24源码.apxs为apache2.4.18添加mod_limitipconn模块. 分析: limitipconn模块最新版已经支持apache2.4了.但是没有编译好的对应版本.因此需要自己动手编译模块.在windows下要实现这个目标,需要

使用apxs安装apache模块

使用apxs安装apache模块                 ---by石锅拌饭 1.缘由 前几天迁移系统,发现配置了fastcgi的一个脚本下载文件总是提示类似Connection reset by peer:FastCGI错误,后来发现应该是下载文件时间超过了fastcgi指定的idle-timeout导致的,这个时间默认是30秒,文件太大就容易超时.为了解决这个问题,于是把下载文件的cgi脚本运行环境配置成cgi. 然而,坑爹的是,apache2.4.7已经默认采用mod_cgid模块

QT Creator 加 apxs 搭建Apache模块开发环境

一 概述: 本文说述的是在苹果机器上搭建Apache模块开发环境的方法,选用的IDE是QT Creator.实质上,我最开初是选用CodeBlocks进行搭建,并且搭建成功了.但CodeBlocks当前的13.12版本在Mac的机器上很不稳定(其官网就特别地说明过不一点).我使用时发现其启动较慢,运行过程中老是闪退等问题,于是才改用QT Creator.这里要声明的是,我在Windows及Linux上使用CodeBlocks,其表现很稳定,功能也是很强的,所以我才第一个选他.本文并不会涉及Apa

7.PHP内核探索:Apache模块介绍

Apache概述 Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台.高效和稳定而闻名.按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额.尤其是在 X(Unix/Linux)平台上,Apache是最常见的选择.其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择. Apache支持许多特性,大部分通过模块扩展实现.常见的模块包括mod_auth(权限验证).mod_ssl(SSL和TLS

以Apache模块的方式编译安装php-5.4.27

为什么要安装低版本的php? 由于apc,xcache的更新版本跟不上php版本的速度,所以,我们需要安装比较稳定的php低版本程序,再安装其它与之相匹配的扩展. 开工: 新建用户及用户组 groupadd webuser useradd -g webuser webuser 下载php-5.4 wget http://blog.xinfilm.com/softdir/php-5.4.27.tar.gz #解包 tar zxvf php-5.4.27.tar.gz cd php-5.4.27 .

Linux下扩展Apache模块

1,关于编译Apache 其实在安装apache的时候最好把常用的模块都编译进去,这样也省得后期再去添加 常用的编译项: ./configure  --prefix=<path>  --enable-mods-shared=all  --enable-so  --enable-rewrite 下面这些不一定非要去指定,但是有些库属于依赖包则必须要安装 --with-apr=<path>   --with-apr-util=<paht>  --with-pcre=<

以Apache模块的方式编译安装php-5.5.4

新建用户及用户组 groupadd webuser useradd -g webuser webuser 下载php-5.5 下载地址:http://pan.baidu.com/s/1o6I6Lnk 解包 tar zxvf php-5.5.4.tar.gz cd php-5.5.4 ./configure --prefix=/server/php5 --enable-sockets --with-apxs2=/server/apache2/bin/apxs --with-mysql=/serve