`
flylynne
  • 浏览: 362535 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache的缓存设置方法

 
阅读更多

Apache缓存设置

编译Apache时设置
./configure --prefix=/usr/local/httpd/ --enable-mods-shared=all --enable-so --enable-cache --enable-disk-cache --enable-mem-cache

Apache 的缓存方式有两种,一种是基于硬盘文件的缓存,由 mod_disk_cache 实现,另一种是使用内存缓存,由 mod_mem_cache 实现,不过它们都是依赖 mod_cache 模块的,mod_cache 模块提供了一些缓存配置的指令供它们使用,而 mod_file_cache 模块是搭配 mod_mem_cache 模块使用的,下面分别进行介绍。
1、基于硬盘文件的缓存
基于硬盘文件存储的缓存由 mod_disk_cache 模块实现,先看个简单的配置例子:
<IfModule mod_cache.c>
    CacheDefaultExpire 86400
    <IfModule mod_disk_cache.c>
    CacheEnable disk /
    CacheRoot /tmp/apacheCache
    CacheDirLevels 5
    CacheDirLength 4
    CacheMaxFileSize 1048576
    CacheMinFileSize 10
    </IfModule>
</IfModule>
把上面的配置加到 Apache 的 httpd.conf 文件中,如果缓存相关的模块都已经编译进了 Apache 的核心,则无需加载模块,直接就能使用上面的指令。指令的详细说明如下:
CacheDefaultExpire:设定缓存过期的时间(秒),默认是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效
CacheEnable:启用缓存,第1个参数是缓存类弄,这里当然是 disk了,第2个参数是缓存路径,指的是 url 路径,这里是缓存所有的东西,直接写上“/”即可,如“/docs”则只缓存 /docs 下的所有文件
CacheRoot:缓存文件所在的目录,运行 Apache 的用户(如daemon 或 nobody)要能对其进行读写,如果不清楚的话可以直接设置成 777,请手动建立该目录并设置好访问权限
CacheDirLevels:缓存目录的深度,默认是3,这里设置为5
CacheDirLength:缓存目录名的字符长度,默认是4,这里设置为5
CacheMaxFileSize 和 CacheMaxFileSize:缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存,这里设置为 1M 和 10bytes
基于硬盘文件存储的文件基本上就这些内容,设置好后重启 Apache 应该就能使用了。一切正常的话,可以在缓存目录下看到 Apache 自动建立的一些目录和缓存的数据文件。
2、基于内存的缓存
基于内存的缓存主要由 mod_mem_cache 模块实现,还是看个简单的配置吧,这样比较直观:-)
<IfModule mod_cache.c>
   <IfModule mod_mem_cache.c>
       CacheEnable mem /
       MCacheMaxObjectCount 20000
       MCacheMaxObjectSize 1048576
       MCacheMaxStreamingBuffer 65536
       MCacheMinObjectSize 10
       MCacheRemovalAlgorithm GDSF
       MCacheSize 131072
   </IfModule>
</IfModule>
简单说一下上面一些指令的意思:
CacheEnable:启用缓存,使用基于内存的方式存储
MCacheMaxObjectCount:在内存中最多能存储缓存对象的个数,默认是1009,这里设置为20000
MCacheMaxObjectSize:单个缓存对象最大为 1M,默认是10000bytes
MCacheMaxStreamingBuffer:在缓冲区最多能够放置多少的将要被缓存对象的尺寸,这里设置为 65536,该值通常小于100000或 MCacheMaxObjectSize 设置的值
MCacheMinObjectSize:单个缓存对象最小为10bytes,默认为1bytes
MCacheRemovalAlgorithm:清除缓存所使用的算法,默认是 GDSF,还有一个是LRU,可以查一下 Apache 的官方文档,上面有些介绍
MCacheSize:缓存数据最多能使用的内存,单位是 kb,默认是100kb,这里设置为128M
保存重启 Apache 基于内存的缓存系统应该就能生效了,根据需要可以使基于内存的存储或硬盘文件的存储方式一起使用,只要指明不同的URL路径即可。
3、注意事项
使用缓存需要注意如下事项:
要使用缓存,必须使用指令 CacheEnable 启用它,目前可用的缓存类型为 disk 或 mem,禁止缓存可以使用 CacheDisable,如 CacheDisable /private
待缓存的 URL 返回的状态值必须为: 200、203、300、301 或 410
URL 的请求方式必须是 GET 方式
发送请求时,头部中包含 “Authorization: ”的字符串时,返回的内容将不会被缓存
URL 包含查询字符串,如问号?后的那些东西,除非返回的内容包含“Expires:”,否则不会被缓存
如果返回的状态值是 200,则返回的头部信息必须包含以下的一种才会被缓存:Etag、Last-Modified、Expires,除非设置了指令 CacheIgnoreNoLastMod On
如果返回内容的头部信息“Cache-Control:”中包含“private”,除非设置了指令 CacheStorePrivate On,否则不会被缓存
如果返回内容的头部信息“Cache-Control:”中包含“no-sotre”,除非设置了指令 CacheStoreNoStore On,否则不会被缓存
如果返回内容的头部信息“Vary:”中包含了“*”,不会被缓存

分享到:
评论

相关推荐

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

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

    apache隐藏版本信息及设置网页缓存1

    apache隐藏版本信息及设置网页缓存1 并且您拥有该资源的所有版权或者上传资源的授权

    Linux Apache设置压缩及缓存

    编辑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实现mybatis二级缓存所需要的jar包,需要的可以下载。

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

    Apache Ignite——新一代数据库缓存系统,不错的书籍讲得很细致

    Apache Web应用详解及优化全攻略

    一、apache优化之保持连接、网页传输压缩、页面缓存时间; 二、apache优化隐藏版本号; 三、apache优化之防盗链; 四、apache的ab压力测试; 五、apache 日志分析工具; 六、apache访问控制; 七、apache优化之日志...

    apache中使用.htaccess文件缓存图片的配置方法

    Apache服务器上的博客/网站,可以通过编辑根目录下的.htaccess文件来激活图片缓存功能。

    Apache Geode入门指导(中文版) 电子版

    Apache Geode是一个数据管理平台,可在广泛分布的云架构中实时,一致地访问数据密集型应用程序。 Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,...

    apache jboss 集群问题

    apache jboss 集群问题,集群后出现异常,收集资料!

    数据管理平台 Apache Geode.zip

    概览Apache Geode 是一个数据管理平台,提供实时的、一致的、贯穿整个云架构地访问数据关键型应用.Geode 池化了服务器上的内存, CPU, 网络资源, 和本地磁盘,跨多个进程来管理应用对象和应用行为. 它使用了动态数据...

    apache-maven-3.6.1-bin.zip

    3. localRepository节点用于配置本地仓库,本地仓库其实起到了一个缓存的作用,它的默认地址是 C:\Users\用户名.m2。 当我们从maven中获取jar包的时候,maven首先会在本地仓库中查找,如果本地仓库有则返回;如果...

    php、mysql、Apache三者集成的配置程序APMServ 5.2.6(1)(分两个压缩包)

    动进行相关设置,将Apache和MySQL安装为系统服务并启动。APMServ集合了Apache稳定安全的 优点,并拥有跟IIS一样便捷的图形管理界面,同时支持MySQL 5.0 & 4.0两个版本,虚拟主机、 虚拟目录、端口更改、SMTP、上传...

    Apache JMeter (apache-jmeter-5.4.3.zip)

    缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和...

    Apache Geode权威指南(中文版).pdf

    Apache Geode是一个数据管理平台,可在广泛分布的云架构中实时,一致地访问数据密集型应用程序。 Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,硬盘...

    apache-ant-1.9.3-bin.zip,从外面搬过来的Visual Studio的组件

    有的小伙伴在离线VS2019安装包的时候会遇到一个包下载失败,就是这个apache-ant-1.9.3-bin.zip,下载以后解压,把apache-ant-1.9.3-bin.zip放到VS2019的缓存目录里就可以了。

    Apache JMeter 源码(apache-jmeter-5.4.3_src.zip)

    缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和...

    Wordpress 非插件Redis缓存 v1.3

    完全开源,使用Apache2.0协议,插件使用GPLV3协议.安装方法:Redis安装具体安装方法请查看readme.md 这是最新发布的安装方法,之前那个方法有童鞋反馈说启动各种错误,很难使用。若需要快速清除缓存,请安装管理插件。...

    Apache-tomcat-9.0.62,一个免费的,开放源代码的Web应用服务器

    Apache-tomcat-9.0.62,一个免费的,开放源代码的Web应用服务器。可以用来配置web服务,配置简单,效率较高;官网下载速度较慢,缓存在这里供大家免费下载。

Global site tag (gtag.js) - Google Analytics