我在Ubuntu上使用Apache 2.4.18.
我想只允许从localhost读取服务器状态.
在/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>
我的配置有什么问题?
从我所看到的,虚拟主机配置文件似乎优先于mod_status配置文件.
实际上你将所有内容授予mysite.conf:
<Location /> Require all granted </Location>
这导致每个人都可以访问/服务器状态.
您必须在虚拟主机配置文件本身/etc/apache2/mods-enabled/status.conf中管理/ server-status的权限:
DocumentRoot /var/www <Location /> Require all granted </Location> <Location /server-status> Require local </Location>
从那里,无论您在/etc/apache2/mods-enabled/status.conf中设置什么权限,它们都将被忽略,因为/etc/apache2/mods-enabled/status.conf优先.