• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mod_file_cache

    描述:在 memory 中缓存 files 的静态列表
    状态:试验
    模块标识符:file_cache_module
    源文件:mod_file_cache.c

    摘要

    应谨慎使用此模块。您可以使用mod_file_cache轻松创建损坏的站点,因此请仔细阅读本文档。
    缓存频繁请求的 files 很少变化是一种减少服务器负载的技术。mod_file_cache提供了两种缓存频繁请求的静态 files 的技术。通过 configuration 指令,您可以指示mod_file_cache打开mmap()文件,或者 pre-open 文件并保存文件的打开文件句柄。这两种技术在处理对这些 files 的请求时通过执行部分工作(特别是文件 I/O)来减少服务器负载,以便在服务器启动时而不是在每个请求期间提供服务。

    注意:您不能使用它来加速 CGI 程序或由特殊内容处理程序提供服务的其他 files。它只能用于通常由 Apache 核心内容处理程序提供的常规 files。

    该模块是 Apache 1.3 中mod_mmap_static模块的扩展和借用。

    使用 mod_file_cache

    mod_file_cache通过主服务器 configuration 中的MMapFile或求 CacheFile指令缓存静态配置的 files 列表。

    并非所有平台都支持这两个指令。如果您尝试使用不受支持的指令,您将在服务器错误 log 中收到错误消息。如果给定不受支持的指令,则服务器将启动但不会缓存该文件。在支持这两个指令的平台上,您应该尝试两者以查看最适合您的指令。

    MMapFile 指令

    mod_file_cache的MMapFile指令 maps 通过系统调用mmap()将静态配置的 files 列表导入 memory。这个系统调用可以在大多数现代 Unix 衍生产品上使用,但不是全部。有时限制 files 的大小和数量可以mmap() ed,实验可能是最容易找到的方法。

    mmap() ing 仅在服务器启动或重新启动时完成。因此,只要其中一个映射的 files 在文件系统上发生更改,就必须重新启动服务器(请参阅停止并重新启动文档)。重申这一点:如果在不重新启动服务器的情况下修改 files,您可能最终会提供完全虚假的请求。您应该通过取消链接旧副本并放置新副本来更新 files。大多数工具如rdistmv都这样做。这个模块没有处理 files 更改的原因是这个检查需要每 time额外这是一个浪费和 I/O 减少的意图。

    CacheFile 指令

    mod_file_cache的求 CacheFile指令为 configuration 指令中列出的文件(或 files)打开 active 句柄或文件描述符,并将这些打开的文件句柄放在缓存中。请求文件时,服务器从缓存中检索句柄并将其传递给sendfile()(或TransmitFile() on Windows), socket API。

    此文件句柄缓存仅在服务器启动或重新启动时完成。因此,只要其中一个缓存的 files 在文件系统上发生更改,您就必须重新启动服务器(请参阅停止并重新启动文档)。重申这一点:如果在不重新启动服务器的情况下修改 files,您可能最终会提供完全虚假的请求。您应该通过取消链接旧副本并放置新副本来更新 files。大多数工具,如rdistmv都这样做。

    注意

    不要求一个递归缓存目录中所有 files 的指令。试试这个......请参阅包括指令,并考虑以下命令:

    find /www/htdocs -type f -print \| sed -e 's/.*/mmapfile &/'>/www/conf/mmap.conf

    CacheFile 指令

    描述:在启动 time 时缓存文件句柄列表
    句法:CacheFile file-path[file-path]...
    Context:服务器配置
    状态:试验
    模块:mod_file_cache

    CacheFile指令打开一个或多个 files 的句柄(以空格分隔的 arguments 给出),并在服务器启动 time 时将这些句柄放入缓存中。缓存 files 的句柄在服务器关闭时自动关闭。当 files 在文件系统上发生变化时,服务器应重新启动到 re-cache。

    小心 file-path arguments:他们必须真正匹配 Apache 的 URL-to-filename 翻译处理程序创建的文件系统路径。我们无法通过符号链接等将 inode 或其他内容与 match paths 进行比较,因为这会再次耗费额外的stat() system calls,这是不可接受的。此模块可能使用也可能不使用mod_alias或mod_rewrite重写的文件名。

    CacheFile /usr/local/apache/htdocs/index.html
    

    MMapFile 指令

    描述:在启动 time 时将 files 列表映射到 memory
    句法:MMapFile file-path[file-path]...
    Context:服务器配置
    状态:试验
    模块:mod_file_cache

    MMapFile指令 maps 在服务器启动 time 时将一个或多个 files(以空格分隔的 arguments 给出)映射到 memory。它们在服务器关闭时自动取消映射。当 files 在文件系统上发生变化时,至少应该向服务器发送HUPUSR1信号以重新发送它们。

    小心 file-path arguments:他们必须真正匹配 Apache 的 URL-to-filename 翻译处理程序创建的文件系统路径。我们无法通过符号链接等将 inode 或其他内容与 match paths 进行比较,因为这会再次耗费额外的stat() system calls,这是不可接受的。此模块可能使用也可能不使用mod_alias或mod_rewrite重写的文件名。

    MMapFile /usr/local/apache/htdocs/index.html
    

    上篇:mod_ext_filter

    下篇:mod_filter