`
flylynne
  • 浏览: 376119 次
  • 性别: 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服务器的设置全攻略

    ### Apache服务器设置全攻略 #### 一、Apache服务器配置概览 Apache服务器是全球范围内广泛使用的Web服务器之一,因其稳定性、可扩展性以及强大的功能受到众多用户的青睐。Apache的配置文件通常位于`/usr/local/...

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

    4. **配置MyBatis-Ignite插件**:在MyBatis的SqlSessionFactoryBuilder或SqlSessionFactory中,设置IgniteCache对象,作为二级缓存的实现。 5. **使用二级缓存**:在Mapper接口或XML映射文件中,使用`@...

    solr更换memcached缓存的方法

    Solr,全名Apache Solr,是Apache软件基金会的一个开源项目,主要用来处理全文检索、分布式搜索和实时分析。在大型网站和企业级应用中,Solr常常被用来提升搜索性能和效率。本文将深入探讨如何在Solr中更换默认的...

    Linux系统下Apache服务器设置与优化

    - **缓存设置**: 合理设置缓存策略,减轻服务器负载。 - **连接池**: 如 `mod_proxy` 和 `mod_cache` 的组合使用可以提高并发性能。 #### 四、附录:采用 `mod_gzip` 加速 Apache **4.1 安装 `mod_gzip`** - 在...

    tomcat缓存

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

    apache安全及优化设置

    ### Apache安全及优化设置 Apache作为全球广泛使用的Web服务器之一,其安全性与性能优化对于确保网站稳定运行至关重要。本文将从几个方面详细介绍如何对Apache进行安全配置与性能优化。 #### 安全设置 1. **限制...

    CentOS Apache配置详解

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

    Apache服务器中设置端口映射和反向代理的方法.docx

    本文将详细讲解如何在Apache服务器上设置这两种功能。 首先,端口映射(Port Mapping)允许我们将一个特定的外部端口请求转发到内部服务器的不同端口上。在Apache中,这通常是通过修改`httpd.conf`配置文件实现的。...

    smarty两种局部缓存方法和自定义生成静态文件的例子

    本文将详细介绍两种局部缓存方法以及如何自定义生成静态文件。 ### 一、Smarty的局部缓存 #### 1. `{cached}` 指令 `{cached}` 是Smarty中用于实现局部缓存的内置指令。它允许我们将一段模板内容缓存起来,直到...

    apache图片服务器安装文件和使用方法

    Apache图片服务器是一款基于Apache HTTP Server的专门...以上就是关于Apache图片服务器的安装和使用方法。请根据实际情况调整步骤,并参考官方文档以获取更详细的配置信息。祝你成功搭建并愉快地使用Apache图片服务器!

    Apache服务器的设置

    Apache的性能优化还包括启用模块如mod_deflate(压缩输出内容)、mod_expires(设置资源缓存过期时间)和mod_cache(缓存静态内容),以减少服务器负载。此外,考虑使用预编译的配置(如APR-Util的apachectl -t -D ...

    php缓存技术总结

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

    apache2.4.35,apache2.4.23

    7. **错误日志改进**:提供更精确的错误日志控制,可以针对不同模块和虚拟主机设置独立的日志,便于故障排查。 8. **性能提升**:通过内存管理优化和缓存机制的改进,2.4版本在内存使用和响应速度上都有所提升。 9...

    mybatis+redis缓存配置

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

    java shiro实现退出登陆清空缓存

    这里没有给出具体的缓存清理代码,因为实际应用中可能涉及不同的缓存实现(如 Redis、Memcached 或 Ehcache),清理缓存的方法会因缓存技术而异。 总之,通过扩展 Shiro 的 `LogoutFilter`,我们可以在用户登出时...

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

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

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

    - **SSL/TLS**:确保使用安全的HTTPS协议进行通信,配置Apache和WebLogic的SSL设置。 - **负载均衡**:通过Plugin实现负载均衡策略,如轮询、最少连接等,以平衡各个WebLogic实例的负载。 - **缓存控制**:可以配置...

Global site tag (gtag.js) - Google Analytics