如何在 apache 服务器上正确启用 mod_status?

Posted

技术标签:

【中文标题】如何在 apache 服务器上正确启用 mod_status?【英文标题】:How to properly enable mod_status on an apache server? 【发布时间】:2013-10-05 16:14:21 【问题描述】:

我一直在到处寻找如何正确启用 mod_status,但没有任何效果。我的服务器名为“willserver.main.ca”。我在 Windows 虚拟机上运行服务器。 我尝试将此添加到 HTTPD 配置文件:

<location /server-status>
SetHandler server-status

Order Deny,Allow
Deny from all
Allow from main.ca

</location>

任何提示或帮助?我不知道我是否应该取消注释,或者我只是一遍又一遍地尝试错误的语法

【问题讨论】:

当我发表评论时,我的“ SetHandler server-status Order Deny,Allow Deny from all Allow from trusys.ca 【参考方案1】:

好的,首先确认您有一个类似于此的LoadModule

LoadModule status_module modules/mod_status.so

如果不存在,那么您需要下载并添加它。

如果有,那么试试这个:

<Location /server-status> 
    SetHandler server-status 
    Order allow,deny
    Allow from all
</Location>

看看你能不能打到http://www.my-domain.com/server-status

如果您可以将其切换为:

<Location /server-status> 
    SetHandler server-status 
    Order allow,deny
    Deny from all
    Allow from 192.168.1.100
</Location>

如果访问内部或外部 IP,192.168.1.100 是您的内部 IP。这将限制它,因此不仅仅是任何人都可以访问它。然后,您可以为每个需要访问的 IP/IP 范围添加多个Allow from

【讨论】:

@Welsh 如果可以更新,请注意三点: 1. Order Allow,Deny 应该在 Allow 和 Deny 之间没有空格。 2.如果有多个虚拟主机,应该有一个默认的虚拟主机配置,没有设置ServerName,以便mod_status正常工作。 3. 用 ... 将它们包围以简化启用和禁用模块【参考方案2】:

Apache 2.4 似乎不喜欢 Order 指令中的空格。

Order Allow, Deny 仅作为

订单允许,拒绝

【讨论】:

这是真的。 mod_access 文档说 Keywords may only be separated by a comma; no whitespace is allowed between them.【参考方案3】:

mod_status 内置在 Apache Web 服务器中,用于从 Web 浏览器获取服务器状态。使用此模块,我们可以轻松了解服务器的性能。所有报告均以 html 格式生成。

步骤 1。检查状态模块是否启用 apache2ctl -M 或 ls /etc/apache2/sites-enabled

步骤 2。如果没有开启,通过命令开启,

sudo a2enmod 状态

第三步。配置访问,

打开 /etc/apache2/mods-enabled/status.conf 并注释这些行,

        #<Location /server-status>
        #    SetHandler server-status
        #    Require local
        #Require ip 192.0.2.0/24
        #</Location>

并添加以下行,

        <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Allow from all
        </Location>

我们可以通过编辑来限制此配置中特定 IP 的服务器状态访问, 从 our_public_ipaddress 允许而不是从 all 允许

保存 status.conf 文件。

第四步。通过命令重启apache,

/etc/init.d/apache2 重启

第五步。在浏览器中查看服务器状态页面

http://server-ip/server-status

希望这会有所帮助。

【讨论】:

【参考方案4】:

在 Mac OS X Yosemite 中,我必须使用它,否则会发生一些无限循环:

<IfModule mod_status.c>
   # Allow server status reports generated by mod_status,
   # with the URL of http://servername/server-status
   # Change the ".example.com" to match your domain to enable.
   #
   <Location /server-status>
     SetHandler server-status
     Order deny,allow
     Allow from all
   </Location>
</IfModule>

取自https://osiutino.wordpress.com/2014/06/12/install-apache-2-4-9-on-mac-osx-10-9-mavericks/

【讨论】:

【参考方案5】:

我开发了一个 javascript 应用程序以图表形式显示数据 https://github.com/dioubernardo/apacheServerStatusCharts

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。【参考方案6】:

您可以在下面找到一个有用的链接: http://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/

【讨论】:

【参考方案7】:

以下配置对我有用。

ExtendedStatus on
<Location /mod_status>
  SetHandler server-status
  Require local
</Location>

【讨论】:

以上是关于如何在 apache 服务器上正确启用 mod_status?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Apache2 服务器上启用日志级别调试 [关闭]

如何在 Ubuntu Apache 中启用错误日志

如何使用 Apache 2.4.46 在 CentOS7 上启用 http2

在本地 xampp/apache 服务器上设置 SSL

如何使用 DirectAdmin 在 Debian 10 上启用 Brotli?

怎么在CentOS 8上安装启用Apache服务器