`

apache缓存

 
阅读更多

从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路径即可。

 
分享到:
评论

相关推荐

    Apache PHP利用HTTP缓存协议原理解析及应用

    #### 一、Apache与静态页面缓存 对于Apache服务的静态页面,Last-Modified和Etag两个头部字段尤为关键。Last-Modified字段记录文件最后一次修改的时间,而Etag则基于文件内容生成一个唯一标识符,通常包括文件的...

    php缓存技术总结

    六、Apache缓存模块 Apache服务器自身支持缓存模块,可以配置httpd.conf来开启缓存功能。服务器通过配置可以缓存特定的网页内容,提高响应速度。当网站外接cache或squid服务器进行Web加速时,需要激活Apache的mod_...

    PHP 缓存详情机制

    `ob_flush()`函数则负责将当前缓存中的数据写入到上级缓存(这里是Apache缓存),而`flush()`函数则用于将Apache缓存中的数据发送到浏览器。通过这种方式,“1”会被立即发送到客户端,而“2”则会在5秒后输出。 ##...

    网站常见缓存技术

    #### 八、Apache缓存模块 Apache支持多种缓存方式,例如磁盘缓存(Disk Cache)和内存缓存(Mem Cache)。这些功能需要在编译安装Apache时启用相应的模块,并在配置文件中进行相应的设置。 **配置示例**: ```ini...

    apache ignite实现mybatis二级缓存所需要的jar包

    Apache Ignite是一款开源的内存数据网格系统,它提供了一个分布式内存计算平台,支持数据库缓存、实时分析以及复杂事件处理等功能。在MyBatis中,二级缓存是提高数据库访问性能的重要手段,它可以将SQL查询结果存储...

    tomcat缓存

    Tomcat缓存是Apache Tomcat服务器中用于提升性能的一个重要机制。它允许Tomcat存储已处理的静态资源或动态内容的副本,以便后续请求时能够快速响应,减少对磁盘和网络I/O的依赖,从而提高应用的整体响应速度。本文将...

    大型WEB网站架构深入分析.pdf

    服务器端的缓存可以采用Apache缓存模块、Squid等,通过缓存技术减少对后端数据库的访问,从而提高响应速度。而在应用开发层面,MemoryCache、Pear Cache模块、Java缓存方案等提供了丰富的缓存机制,帮助开发者管理...

    CentOS Apache配置详解

    MySQL 的配置文件是/etc/my.cnf, 这个文件中定义了 MySQL 的各种设置,例如数据库连接参数、缓存设置等。 八、 PHP 的配置文件 PHP 的配置文件是/etc/php.ini, 这个文件中定义了 PHP 的各种设置,例如上传文件...

    apache2.4.35,apache2.4.23

    8. **性能提升**:通过内存管理优化和缓存机制的改进,2.4版本在内存使用和响应速度上都有所提升。 9. **模块更新**:如mod_security、mod_rewrite等核心模块在2.4版本中也得到了更新,增强了服务器的安全性和功能...

    Apache Ignite——新一代数据库缓存系统

    Apache Ignite是一款新一代的数据库缓存系统,它为快速发展的数据存储和处理提供了显著的解决方案。Ignite支持RDBMS、NoSQL和HDFS等多种底层存储系统,以应对大规模数据的存储挑战。 随着数据量的持续增长,如何...

    php缓存技术详细总结

    apache缓存模块 Apache缓存模块是Apache HTTP服务器软件的一部分,可以用于缓存静态和动态内容,提高Web服务器的性能和响应速度。在启用mod_cache模块后,可以在httpd.conf配置文件中设置缓存的相关参数来启用和配置...

    JBOSS与APACHE的整合

    也可以将APACHE服务器作为缓存服务器,缓存静态网页,以减少JBOSS服务器的压力。 JBOSS与APACHE的整合可以提高Web应用程序的性能和可扩展性,提高系统的可靠性和安全性,同时也可以降低系统的成本和复杂度。

    WLSPlugin12.2.1.4.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.4.0.zip

    "WLSPlugin12.2.1.4.0-Apache2.2-Apache2.4-Linux_x86_64-12.2.1.4.0.zip" 是一个包含WebLogic Plugin的压缩包,适用于Apache 2.2和2.4版本,且专为Linux x86_64架构设计。 **WebLogic Plugin**: WebLogic Plugin...

    javaeye Robbin 论缓存技术

    4. **Web服务器缓存**:Web服务器如Nginx、Apache等可以缓存静态文件,减少对应用服务器的压力。 5. **客户端浏览器缓存**:浏览器会缓存网页资源,减少对服务器的请求,提高页面加载速度。 **操作系统缓存** - ...

    redhat6.6升级apache2.4.43升级相关包

    9. **性能优化**:Apache 2.4.x提供了更多性能优化选项,如MPM(多进程模块)调整、KeepAlive设置和缓存策略。根据负载情况,适当调整这些设置能提升服务器性能。 10. **持续监控与维护**:升级后,定期检查更新和...

    mybatis+redis缓存配置

    3. **实现自定义缓存类**:需要创建一个自定义的缓存类,该类实现`org.apache.ibatis.cache.Cache`接口,例如`com.example.RedisCache`。 - 在自定义的缓存类中,实现基本的缓存操作方法,如`getId()`、`putObject...

    apache2.zip

    1. **模块化设计**:Apache2的核心模块负责处理基本的HTTP协议功能,而其他模块则提供了额外的功能,如SSL/TLS安全连接、URL重写、身份验证、缓存等。用户可以根据需求选择安装哪些模块。 2. **线程模型**:Apache2...

Global site tag (gtag.js) - Google Analytics