Apache 模块 mod_info

Description:提供服务器配置的全面概述
Status:Extension
Module Identifier:info_module
Source File:mod_info.c

Summary

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

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

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

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

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

Security Issues

mod_info加载到服务器后,它的处理程序功能将在所有配置文件中可用,包括按目录的文件(***,.htaccess)。这可能会对您的站点产生与安全相关的后果。

特别是,此模块可能会泄漏其他 Apache 模块的配置指令中的敏感信息,例如系统路径,用户名/密码,数据库名称等。因此,该模块应仅在受控环境中使用,并且始终与警告。

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

Access control

<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>

选择显示的信息

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

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

  • ?<module-name>

    • 仅与指定模块有关的信息
  • ?config

    • 仅配置指令,不按模块排序
  • ?hooks

    • 每个模块仅附有钩子列表
  • ?list

    • 仅启用模块的简单列表
  • ?server

    • 仅基本服务器信息
  • ?providers

    • 列出服务器上可用的提供程序

启动时转储配置

如果设置了 config define -DDUMP_CONFIG,则mod_info将在服务器启动期间将预先解析的配置转储到stdout

httpd -DDUMP_CONFIG -k start

预先解析意味着对诸如<IfDefine><IfModule>之类的指令进行求值,并替换环境变量。但是,它不代表配置的最终状态。特别是,它并不表示重复指令可能发生的合并或覆盖。

这大致相当于?config查询。

Known Limitations

mod_info通过读取已解析的配置而不是读取原始配置文件来提供其信息。由于创建了解析的配置树,因此存在一些限制:

  • 没有列出立即执行而不是存储在已解析配置中的指令。其中包括ServerRootLoadModuleLoadFile

  • 未列出控制配置文件本身的伪指令,例如Include<IfModule><IfDefine>,但包含的配置伪指令则未列出。

  • Comment 未列出。 (这可能被认为是一项功能.)

  • .htaccess文件中的配置指令未列出(因为它们不构成永久服务器配置的一部分)。

  • 正常列出了诸如<Directory>之类的容器指令,但是mod_info无法找出结尾</Directory>的行号。

  • 由第三方模块(例如mod_perl)生成的指令可能不会列出。

AddModuleInfo Directive

Description:将附加信息添加到由服务器信息处理程序显示的模块信息中
Syntax:AddModuleInfo module-name string
Context:服务器配置,虚拟主机
Status:Extension
Module:mod_info

这允许将字符串的内容显示为 HTML 解释,模块的模块名称为“附加信息”。例:

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>'