Mad*_*rin 6 ubuntu apache-2.4 apache2
我在 Ubuntu 上使用 Apache 2.4.18。
我想只允许从本地主机读取服务器状态。
在/etc/apache2/mods-enabled/status.conf
我有:
<Location /server-status>
SetHandler server-status
Require ip 127.0.0.1
</Location>
Run Code Online (Sandbox Code Playgroud)
我已阅读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>
Run Code Online (Sandbox Code Playgroud)
我的配置有什么问题?
据我所见,虚拟主机配置文件似乎优先于mod_status
配置文件。
实际上,您将所有内容授予/
inside mysite.conf
:
<Location />
Require all granted
</Location>
Run Code Online (Sandbox Code Playgroud)
这导致每个人都可以访问/server-status
。
您必须管理/server-status
虚拟主机配置文件本身的权限/etc/apache2/sites-enabled/status.conf
:
DocumentRoot /var/www
<Location />
Require all granted
</Location>
<Location /server-status>
Require local
</Location>
Run Code Online (Sandbox Code Playgroud)
从那里开始,您在其中设置的任何权限都/etc/apache2/mods-enabled/status.conf
将被忽略并/etc/apache2/sites-enabled/status.conf
优先。