Apache 内容动态缓冲模块 mod_cache应用

 更新时间:2013年10月29日 10:30:53   作者:  
mod_cache是apache中基于URI键的内容动态缓冲(内存或磁盘),从Apache2.2起,mod_cache和mod_file_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


两种缓存模式:
1、mod_disk_cache
一个基于磁盘的存储管理模块。
2、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路径即可。

相关文章

  • 详解Linux Socket编程(不限Linux)

    详解Linux Socket编程(不限Linux)

    本篇文章主要介绍了Linux Socket编程,网络之间的通信全靠Socket,详细的介绍了Socket,有兴趣的同学可以了解一下。
    2016-12-12
  • Jexus开机自动启动配置方法

    Jexus开机自动启动配置方法

    这篇文章主要为大家详细介绍了Jexus开机自动启动的配置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Linux学习第一天——ssh登录和软件安装详解

    Linux学习第一天——ssh登录和软件安装详解

    这篇文章主要介绍了Linux学习第一天——ssh登录和软件安装详解 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • windows下实现定时重启Apache与MySQL方法

    windows下实现定时重启Apache与MySQL方法

    有时候为了服务器具有更好的效率,可以定时重启apache服务等。让网站运行的效果更快。
    2010-09-09
  • Linux内核设备驱动之proc文件系统笔记整理

    Linux内核设备驱动之proc文件系统笔记整理

    今天小编就为大家分享一篇关于Linux内核设备驱动之proc文件系统笔记整理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Centos7环境下YUM的搭建方法

    Centos7环境下YUM的搭建方法

    大家好,本篇文章主要讲的是Centos7环境下YUM的搭建方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • CentOS设置精准时间的方法

    CentOS设置精准时间的方法

    下面小编就为大家分享一篇CentOS设置精准时间的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Linux zabbix agent部署及配置方法详解

    Linux zabbix agent部署及配置方法详解

    这篇文章主要介绍了Linux zabbix agent部署及配置方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Linux  crontab 命令的使用

    Linux crontab 命令的使用

    这篇文章主要介绍了Linux crontab 命令的使用,帮助大家更好的理解和学习Linux系统,感兴趣的朋友可以了解下
    2020-08-08
  • Linux中tcpdump命令实例详解

    Linux中tcpdump命令实例详解

    用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。下面这篇文章主要给大家介绍了关于Linux中tcpdump命令的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08

最新评论