当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Apache 内容动态缓冲模块 mod

    栏目:Linux/apache问题 时间:2018-10-20 14:12

    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小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效