【问题标题】:Apache 2.4 mod_status configuration with virtual hosts Getting Forbidden error带有虚拟主机的 Apache 2.4 mod_status 配置出现禁止错误
【发布时间】:2013-07-14 23:22:54
【问题描述】:

我正在尝试在我的 apache 2.4 服务器上设置 mod_status。我已经在网上搜索了几个小时,但给出的所有示例都只显示了 httpd.conf 主文件中的标签,而不是如何将指令放入虚拟主机设置中。

这是我尝试过的虚拟主机配置。当我这样做然后从我允许的 IP 地址(我的远程公共地址)打开本地浏览器或浏览器时,我在浏览器中收到禁止错误。

<VirtualHost *:80>
ServerName www.thevmscloud.com
ServerAlias thevmscloud.com
ServerAdmin admin@thevmscloud.com
DocumentRoot "d:/wamp/webdocs/www/"
ErrorLog "logs/www.thevmscloud.com.log"
CustomLog "logs/www.thevmscloud.com.log" common

<Location /server-status>
  SetHandler server-status
  Order deny,allow
  Deny from all
  Require host 127.0.0.1 81.133.136.16
</Location>

<Directory "d:/wamp/webdocs/www/">
  LogLevel crit
  Options Indexes FollowSymLinks Includes ExecCGI
  AllowOverride all
  Order Allow,Deny
  Allow from all
  Require all granted
</Directory>  

我已经尝试了各种不同的设置组合,注释输入/输出,位置块与虚拟主机块,在它之外,在 httpd.conf 主体中,但仍然没有乐趣。

问题是,我无法在任何地方找到这种设置的示例。有些帖子说“你可能想把它添加到你的虚拟主机配置中”,但没有说明如何。

有人知道如何配置它,以便我可以浏览到我的 domain.com/server-status 并按预期查看服务器统计信息吗?

非常感谢 标记

【问题讨论】:

    标签: apache virtualhost status


    【解决方案1】:

    改成这样:

    <Location /server-status>
        SetHandler server-status
        Require ip 127.0.0.1
        Require ip ::1
        Require ip 81.133.136.16
    </Location>
    
    • 如果您不需要它,请不要使用 require "host",因为它会尝试解析它(尤其是对于 localhost)
    • 还要检查错误日志。
    • ::1 是 IPv6 的 localhost,您可能需要它。

    【讨论】:

      【解决方案2】:

      通过虚拟主机名访问服务器状态,而不是localhost/127.0.0.1,请看我的配置:

      <IfModule mod_status.c>                                                         
      <Location /server-status>                                                       
          SetHandler server-status                                                    
          Order deny,allow                                                            
          Allow from 127.0.0.1                                                        
          Allow from ::1                                                              
      </Location>                                                                     
      </IfModule>                                                                     
      

      允许来自的地址是客户端位于同一主机上的位置,而不是您调用服务器的地址,因为具有不同服务器地址的不同虚拟框共享同一台本地计算机.

      由于我只有一个虚拟盒子,我还不知道返回的数据是否会根据不同的虚拟盒子进行拆分。如果您知道,请编辑此帖子或发表评论。

      请注意,尝试从其他地址访问 http(s)://hostname/server-status 失败,状态为 403,并且日志显示神秘:AH01797:客户端被服务器配置拒绝 .最后,我无法从外部访问状态,即使我让 Allow from all,但这对我来说并不重要。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2013-04-28
        • 2013-07-12
        • 2017-03-22
        • 2015-08-26
        • 2019-04-22
        • 2014-12-28
        • 2019-10-01
        • 2011-05-04
        • 2017-06-14
        相关资源
        最近更新 更多