在我的 apache2 服务器中,我访问/server-status
并检查了 Web 服务器的当前状态。我发现 mods-available/status.conf 包含负责显示状态的代码片段。
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost ip6-localhost
</Location>
我的问题是如何使其不仅适用于本地主机,还适用于具有身份验证的远程主机?
答案1
要允许其他主机,您只需更新行:
Allow from localhost ip6-localhost
读书:
Allow from localhost ip6-localhost 1.2.3.4 1.2.3
对于身份验证部分,您可以添加如下块:
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
该passwords
文件需要使用htpasswd
实用程序创建。请查看这一页更多细节。
答案2
在<Location /server-status>
节中,同时包含Allow from localhost
和身份验证指令。关键是使用Satisfy Any
指定来自本地主机的请求可以绕过身份验证。
编辑:根据要求,给出明确的例子(它只是结合了迄今为止大家所说的一切):
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Satisfy Any
Allow from localhost ip6-localhost
AuthType basic
AuthName "Apache status"
AuthUserFile /etc/apache2/passwd-server-status
Require valid-user
</Location>
答案3
您可以使用类似的东西:
<Location /server-status>
SetHandler server-status
AuthType basic
AuthName "Apache status"
AuthUserFile /etc/apache2/passwd-server-status
Require valid-user
</Location>
另外,不要忘记使用以下命令创建密码文件并为自己创建帐户(替换用户名使用您喜欢的任何用户名):
htpasswd -c /etc/apache2/passwd-server-status username
答案4
如果加载的是您的网站而不是状态页面,请添加RewriteEngine Off
到。如果存在文件,<Location>
有时会发生这种情况。.htaccess