无法将 Apache 服务器状态页面限制到本地主机

无法将 Apache 服务器状态页面限制到本地主机

我在 Ubuntu 上使用 Apache 2.4.18。

我只想允许从本地主机读取服务器状态。

/etc/apache2/mods-enabled/status.conf有:

<Location /server-status>
          SetHandler server-status
          Require ip 127.0.0.1
</Location>

我读过了https://httpd.apache.org/docs/2.4/howto/access.html和 和 我相信上述配置应该可以正常工作。我已重新启动 Apache 以确保新配置有效。但是状态页面仍然打开,可以从任何地方读取。

/etc/apache2/sites-enabled/mysite.conf有:

 DocumentRoot /var/www
 <Location />
        Require all granted
 </Location>

我的配置有什么问题?

答案1

据我所见,虚拟主机配置文件似乎优先于mod_status配置文件。

实际上你授予了所有/权限mysite.conf

<Location />
        Require all granted
</Location>

这使得每个人都可以访问/server-status

您必须管理/server-status虚拟主机配置文件本身的权限/etc/apache2/sites-enabled/status.conf

DocumentRoot /var/www
 <Location />
        Require all granted
 </Location>
 <Location /server-status>
        Require local
 </Location>

从那时起,无论您设置什么权限,/etc/apache2/mods-enabled/status.conf它们都将被忽略,因为/etc/apache2/sites-enabled/status.conf优先。

答案2

在 status.conf 中使用以下位置指令

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

之后,从 CLI 在您的机器上安装 lynx。Lynx 是一款功能齐全的万维网 (WWW) 客户端,可通过 Linux 终端访问。

对于 Ubuntu,使用以下命令安装 lynx

 apt-get install lynx

运行以下命令检查 apache 服务器状态

 lynx http://localhost/server-status

相关内容