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将显示所有配置指令。

启动时转储配置

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

httpd -DDUMP_CONFIG -k start

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

这大致相当于?config查询。

Known Limitations

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

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