Apache 模块 mod_cache应用

mod_cache是apache中基于URI键的内容动态缓冲(内存或磁盘)

 

 

  从Apache2.2起,mod_cache和mod_file_cache将不再是试验模块,它们已经足够稳定,可以用于实际生产中了。这些缓冲体系提供了一个强有力的途径来加速原始web服务器(origin webserver)和代理服务器(proxy)的HTTP处理速度。

  mod_cache以及它的支持模块mod_mem_cache和mod_disk_cache提供了智能的HTTP缓冲。内容(content)本身被存储在缓冲区中,mod_cache的目的在于管理控制内容缓冲能力的各种HTTP头和选项。它可以同时处理本地的内容和代理的内容。mod_cache被设计为同时针对简单的和复杂的缓冲配置,以用于处理代理的内容、动态的本地内容、必须加速访问的随时间而改变本地文件。

  另一方面,mod_file_cache实现了一个更基本的、但是在某些情况下更有效的缓冲形式,它避免了主动确保URL缓冲能力所需的维护复杂性,mod_file_cache通过提供文件句柄(file-handle)和内存映射(memory-mapping)的技巧来维持一个自Apache最后一次启动以来的文件缓冲区。同样地,mod_file_cache的目标是改善不常修改的本地静态文件的访问时间。

  由于mod_file_cache提供了一个相对简单的缓冲实现,除了CacheFile和MMapStatic文档的特定段落之外,这篇指南的说明覆盖了mod_cache的缓存体系结构。

 

 

安装编译                                                                       

 

为了能够在apache使用cache ,需要在安装编译时加上如下参数。

--enable-cache  --enable-disk-cache --enable-mem-cache  --enable-file-cache



[root@localhost httpd-2.4.1]# ./configure --prefix=/usr/local/apache2worker --enable-so  --enable-cache  --enable-disk-cache --enable-mem-cache  --enable-file-cache

[root@localhost httpd-2.4.1]# make
[root@localhost httpd-2.4.1]# make install

两种缓存模式:

mod_disk_cache

  一个基于磁盘的存储管理模块。

mod_mem_cache

  一个基于内存的存储管理模块。mod_mem_cache可以被配置为两种不同的操作模式:①缓存打开的文件描述符;②在堆(heap)上缓存对象。mod_mem_cache既可以用于缓存本地生成的内容,也可以用于为反向代理模式下的mod_proxy缓存后端服务器输出的内容。

 

 

基于硬盘文件的缓存                                                                                             

 

基于硬盘文件存储的缓存由mod_disk_cache 模块实现:

<IfModule mod_cache.c>
CacheDefaultExpire  3600
CacheMaxExpire  86400
CacheLastModifiedFactor  0.1

<IfModule mod_disk_cache.c>
CacheRoot  /usr/local/apache/cache
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
CacheMaxFileSize  10000000
CacheMinFileSize  1
</IfModule> 

</IfModule>

 

拷贝上面内容到apache 的 httpd.con文件中:

在httpd.conf文件中搜索

#LoadModule cache_module modules/mod_cache.so  // 去掉前面的# 号

使用磁盘文件缓存:

#LoadModule disk_cache_module modules/mod_disk_cache.so  // 去掉前面的# 号

参数详细含义如下

CacheDefaultExpire:

  设定缓存过期的时间(秒),默认是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效

CacheMaxExpire:

  失效周期的最大值,缓存实体的默认失效周期是一个小时(3600秒) ,这个默认值仅仅用在产生内容的原始资源没有明确指定失效时间或最后修改时间的情况下。 

CacheLastModifiedFactor:

  在事件的文件中不提供到期时间,指令指定的一个因素是用于生成截止日期。例如,如果该文件的最后修改10小时前, 系数为0.1,那么到期期间将设置为10 * 0.1 = 1小时,如果当前时间是下午3:00,然后计算到期时间为3:00+1小时,也就是下午4:00  ,如果到期时间大于CacheMaxExpire 的时间,那么后者优先级高。

-----------------------------------------

CacheRoot:

  缓存文件所在的目录,运行 Apache 的用户(如daemon 或 nobody)要能对其进行读写,如果不清楚的话可以直接设置成 777,请手动建立该目录并设置好访问权限

CacheEnable:

  启用缓存,第1个参数是缓存类弄,这里当然是 disk了,第2个参数是缓存路径,指的是 url 路径,这里是缓存所有的东西,直接写上“/”即可,如“/docs”则只缓存 /docs 下的所有文件

CacheDirLevels:

  缓存目录的深度,默认是3,这里设置为5

CacheDirLength:

  缓存目录名的字符长度,默认是4,这里设置为5

CacheMaxFileSize 和 CacheMaxFileSize:

  缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存,这里设置为 1M 和 10bytes

基于硬盘文件存储的文件基本上就这些内容,设置好后重启 Apache 应该就能使用了。一切正常的话,可以在缓存目录下看到 Apache 自动建立的一些目录和缓存的数据文件。

 

 

基于内存的缓存                                                                                              

 

基于内存的缓存主要由 mod_mem_cache 模块实现:

<IfModule mod_cache.c>

<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount  2000
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
</IfModule>

</IfModule>

 

安装完成之后,需要搜索

LoadModule cache_module modules/mod_cache.so  // 去掉前面的# 号

使用内存文件缓存:

#LoadModule mem_cache_module modules/mod_mem_cache.so  // 去掉前面的# 号

 

参数详细含义如下:

CacheEnable:

  启用缓存,使用基于内存的方式存储

MCacheSize:

  缓存数据最多能使用的内存,单位是 kb,默认是100kb,这里设置为128M

MCacheMaxObjectCount:

  在内存中最多能存储缓存对象的个数,默认是1009,这里设置为20000

MCacheMinObjectSize:

  单个缓存对象最小为10bytes,默认为1bytes

MCacheMaxObjectSize:

  单个缓存对象最大为 1M,默认是10000bytes

 

保存重启 Apache 基于内存的缓存系统应该就能生效了,根据需要可以使基于内存的存储或硬盘文件的存储方式一起使用,只要指明不同的URL路径即可。

 

-----------------------------------

时间: 2024-08-30 04:57:22

Apache 模块 mod_cache应用的相关文章

在WIN98下以apache模块方式安装php

在WIN98下以apache模块方式安装php手记 foolboy@chinaren.com ★相关软件:     mod_php4-4.0.1-pl2.zip     php-4.0.1pl2-Win32.zip     以上软件可以在www.php.net或者www.phpuser.com上下载     注意两者的版本一定要一样,     (关键是mod_php4.dll与php4ts.dll及Msvcrt.dll版本相同) ★具体步骤:     用winzip分别将两个.zip文件解压  

win8下XAMPP中Apache模块无效解决办法

  win8下XAMPP中Apache模块无效解决办法 win8下系统默认占用80端口,导致apache无法打开. 以管理员权限运行c:windowssystem32cmd.exe C:WINDOWSsystem32>net stop http HTTP Service 服务已成功停止. C:WINDOWSsystem32>netstat -ano | findstr 0.0.0.0:80 C:WINDOWSsystem32>sc config http start=disabled [

如何处理Win8系统XAMPP中Apache模块无效的问题

目前使用最广泛Web服务器是Apache,如果系统默认占用了80端口,Win8系统在XAMPP中就会出现Apache模块无效的现象,导致apache无法打开.以下小编为您详细介绍一下如何解决Apache模块无效的方法! 1.以管理员权限运行c:windowssystem32cmd.exe C:WINDOWSsystem32>net stop http HTTP Service 服务已成功停止 2.C:WINDOWSsystem32>netstat -ano | findstr 0.0.0.0:

进一步部署 Google Authenticator:Apache 模块

Google Authenticator 是个好东西.它不仅可以增强 Google 账户登录的安全性,更因为它开源的特性,被部署到别的地方使用.比如 Linux PAM.WordPress 等,使用户可以借助 Google 的这套 OTP 方案,增强自己的服务器.网站和个人电脑的安全性.笔者之前就写过一篇详细的教程<用 Google Authenticator 加强 VPS 及 WordPress 甚至桌面电脑的安全性>,介绍如何把 Google Authenticator 部署到服务器.Wo

解决WP Super Cache提示找不到apache模块问题

相信很多朋友都用过WP Super Cache这款wordpress的缓存插件,这款插件的缓存效果非常好,我在之前的文章使用WP Super Cache插件加速博客中也对其进行过介绍. tennfy采用debian中lamp一键安装脚本在vps中安装apache之后,在Wordpress中遇到了WP Super Cache提示找不到apache模块的问题.不过网上已经有朋友给出了相应的解决办法,也希望能够分享给同样遇到该问题的朋友. 问题表现 打开Wordpress中WP Super Cache

在WIN98下以apache模块方式安装php_php基础

在WIN98下以apache模块方式安装php手记 foolboy@chinaren.com ★相关软件:     mod_php4-4.0.1-pl2.zip     php-4.0.1pl2-Win32.zip     以上软件可以在www.php.net或者www.phpuser.com上下载     注意两者的版本一定要一样,     (关键是mod_php4.dll与php4ts.dll及Msvcrt.dll版本相同) ★具体步骤:     用winzip分别将两个.zip文件解压  

mod_myvhost 0.21发布 PHP虚拟主机的Apache模块

mod_myvhost 是一个用于动态配置基于域名的PHP大规模http://www.aliyun.com/zixun/aggregation/14840.html">虚拟主机的Apache模块.可以将虚拟主机配置和PHP设置存储到MySQL数据库中,无需每个虚拟主机的apache配置文件,配置更改后不需要重新启动apache.它能够动态更改任何虚拟主机的PHP设置,在默认情况下,设置open_basedir作为虚拟主机的rootdir,你可以改变任何在php.ini中的参数. mod_m

Apache::Deploy 0.8.0发布 Tomcat的Apache模块

Apache::Deploy是一个http://www.aliyun.com/zixun/aggregation/14417.html">Apache模块和WAR文件配置到Tomcat服务器的工具.它简化了多台服务器的部署过程. Apache::Deploy 0.8.0版本添加了对Windows的支持. 使用示范:(https://github.com/krimdomu/rex-apache-deploy) 在你的Rexfile文件中使用以下命令,建立一个软件包: use Rex::Apa

Apache::Deploy 0.5.1发布 Tomcat的Apache模块

Apache::Deploy 是一个用来将 war 包发布到 Tomcat 的 http://www.aliyun.com/zixun/aggregation/14417.html">Apache 模块. 该版本修复了属性文件的模板解析,处理了 Windows 的行结束符的问题. Apache::Deploy 0.5.1此版本修复了模板文件属性的解析.需要在属性文件Windows行结尾的进行说明. 使用示例: In your Rexfile use the following comman