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

    描述:提供服务器 configuration 的全面概述
    状态:延期
    模块标识符:info_module
    源文件:mod_info.c

    摘要

    要配置mod_info,请将以下内容添加到httpd.conf文件中。

    <Location "/server-info">
        SetHandler server-info
    </Location>
    

    您可能希望在<Location>指令中使用mod_authz_host来限制对服务器 configuration 信息的访问:

    <Location "/server-info">
        SetHandler server-info
        Require host example.com
    </Location>
    

    配置完成后,通过访问http://your.host.example.com/server-info获取服务器信息

    安全问题

    将mod_info加载到服务器后,其处理程序功能在所有 configuration files 中都可用,包括 per-directory files(e.g.,.htaccess)。这可能会对您的网站产生 security-related 分支。

    特别是,此模块可能会泄漏来自其他 Apache 模块的 configuration 指令的敏感信息,例如 system paths,usernames/passwords,数据库名称等。因此,此模块应该**仅在受控环境中使用并始终谨慎使用。

    您可能希望使用mod_authz_host来限制对服务器配置信息的访问。

    访问控制

    <Location "/server-info">
        SetHandler server-info
        # Allow access from server itself
        Require ip 127.0.0.1
    
        # Additionally, allow access from local workstation
        Require ip 192.168.1.17
    </Location>
    

    选择显示的信息

    默认情况下,服务器信息包括所有已启用模块的列表,并且对于每个模块,包括该模块所理解的指令的描述,该模块实现的挂钩以及当前 configuration 中的相关指令。

    通过将查询附加到server-info请求,可以获得 configuration 信息的其他视图。例如,http://your.host.example.com/server-info?config将显示所有 configuration 指令。

    • ?<module-name>
      仅与指定模块相关的信息
    • ?config
      只是 configuration 指令,没有按模块排序
    • ?hooks
      只附加每个模块的挂钩列表
    • ?list
      只有启用模块的简单列表
    • ?server
      只有基本的服务器信息
    • ?providers
      列出服务器上可用的提供程序

    在启动时转储 configuration

    如果设置了 config define -DDUMP_CONFIG,mod_info将在服务器启动期间将 pre-parsed configuration 转储到stdout

    httpd -DDUMP_CONFIG -k start
    

    Pre-parsed 表示评估像<IfDefine>和<IfModule>这样的指令,并替换环境变量。但它并不代表 configuration 的最终 state。特别是,它不代表重复指令可能发生的合并或重写。

    这大致相当于?config查询。

    已知限制

    mod_info通过读取解析的 configuration 来提供其信息,而不是读取原始的 configuration 文件。由于解析的 configuration 树的创建方式,存在一些限制:

    • 不会列出立即执行而非存储在已解析的 configuration 中的指令。这些包括ServerRoot,LoadModule和LoadFile。
    • 未列出控制 configuration 文件本身的指令,例如包括,<IfModule>和<IfDefine>,但包含的 configuration 指令是。
    • Comments 未列出。(这可能被认为是 feature.)
    • 未列出.htaccess files 的 Configuration 指令(因为它们不构成永久服务器 configuration 的一部分)。
    • 容器指令(如<Directory>)通常列出,但mod_info无法找出</Directory>的 line 数。
    • 可能未列出由第一方模块(如mod_perl)生成的指令。

    AddModuleInfo 指令

    描述:向 server-info 处理程序显示的模块信息添加其他信息
    句法:AddModuleInfo module-name string
    Context:server config,virtual host
    状态:延期
    模块:mod_info

    这允许 string 的内容显示为 HTML 解释,附加信息为模块 module-name。例:

    AddModuleInfo mod_deflate.c 'See <a 
        href="http://httpd.apache.org/docs/2.4/mod/mod_deflate.html">
        http://httpd.apache.org/docs/2.4/mod/mod_deflate.html</a>'
    

    上篇:mod_include

    下篇:mod_isapi