从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隐藏版本信息及设置网页缓存1 并且您拥有该资源的所有版权或者上传资源的授权
编辑apache模块 vim /etc/httpd/conf.modules.d/00-base.conf 确保以下三个模块没有被注释 LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so LoadModule ...
该资源为apache ignite实现mybatis二级缓存所需要的jar包,需要的可以下载。
Apache Ignite——新一代数据库缓存系统,不错的书籍讲得很细致
一、apache优化之保持连接、网页传输压缩、页面缓存时间; 二、apache优化隐藏版本号; 三、apache优化之防盗链; 四、apache的ab压力测试; 五、apache 日志分析工具; 六、apache访问控制; 七、apache优化之日志...
Apache Geode是一个数据管理平台,可在广泛分布的云架构中实时,一致地访问数据密集型应用程序。 Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,...
概览Apache Geode 是一个数据管理平台,提供实时的、一致的、贯穿整个云架构地访问数据关键型应用.Geode 池化了服务器上的内存, CPU, 网络资源, 和本地磁盘,跨多个进程来管理应用对象和应用行为. 它使用了动态数据...
apache jboss 集群问题,集群后出现异常,收集资料!
缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和...
3. localRepository节点用于配置本地仓库,本地仓库其实起到了一个缓存的作用,它的默认地址是 C:\Users\用户名.m2。 当我们从maven中获取jar包的时候,maven首先会在本地仓库中查找,如果本地仓库有则返回;如果...
Apache Geode是一个数据管理平台,可在广泛分布的云架构中实时,一致地访问数据密集型应用程序。 Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,硬盘...
有的小伙伴在离线VS2019安装包的时候会遇到一个包下载失败,就是这个apache-ant-1.9.3-bin.zip,下载以后解压,把apache-ant-1.9.3-bin.zip放到VS2019的缓存目录里就可以了。
缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和...
APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28 ...虚拟目录、端口更改、SMTP、上传大小限制、自动全局变量、SSL证书制作、缓存性能优化等设 置,只需鼠标一点即可完成。
如何 知识库回购 指数 AviSynth FX 万花筒效果,在视频中使用图像蒙版,混合视频,添加字幕,剪切和循环播放...备份linux,apache缓存,ffmpeg转换示例mp4 mp3 mkv mpeg avi rsync示例,cpu实时日志,cyberciti教程 u
Apache-tomcat-9.0.62,一个免费的,开放源代码的Web应用服务器。可以用来配置web服务,配置简单,效率较高;官网下载速度较慢,缓存在这里供大家免费下载。
Apache Camel 演示应用程序 概述 此 Web 应用程序实现了一个 Web 服务,该服务提供上传和下载与某些“商店”相关联的数据的方法。 上传的数据被放入队列并被缓存。 获取请求从缓存接收数据。 有一个“通用”存储提供...
Spring Boot与Apache Ignite的集成及其持久的内存和基于缓存的sql查询 展示如何将apache ignite与spring boot集成在一起,以及使用持久性内存功能和sql查询来覆盖内存缓存中的ign的案例 将Spring Boot与Apache ...
ssm(Spring+SpringMVC+Mybatis)框架集成apache cxf2.7,并同时集成了memecached(缓存服务器)+mongodb(NoSQL)+定时任务队列(Quartz).