我在 Azure 中使用 Linux(Ubuntu 16.04.06 LTS),并尝试启用 Apache 状态。但是,在我启用状态模块后,当我转到http://localhost/服务器状态我收到错误
--2020-02-27 20:58:26-- http://localhost/服务器状态/正在解析本地主机 (localhost)... 127.0.0.1 连接到本地主机 (localhost)|127.0.0.1|:80... 已连接。HTTP 请求已发送,等待响应... 500 内部服务器错误 2020-02-27 20:58:26 错误 500:内部服务器错误。
当我看到 Apache错误日志我收到一条关于内部重定向过多的消息
[2020 年 2 月 27 日星期四 20:58:26.451285] [core:error] [pid 86787] [client 127.0.0.1:51734] AH00124:由于可能的配置错误,请求超出了 10 次内部重定向的限制。如有必要,请使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。
我使用了标准命令:sudo a2enmod 状态启用服务,然后重新启动 apache。我还使用默认配置文件:
---- 状态.conf ---
<IfModule mod_status.c>
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
<Location /server-status>
SetHandler server-status
#Require ip 192.0.2.0/24
Require local
</Location>
# Keep track of extended status information for each request
ExtendedStatus On
<IfModule mod_proxy.c>
# Show Proxy LoadBalancer status in mod_status
ProxyStatus On
</IfModule>
</IfModule>
---- 状态.conf ---
我确实对所有 http 流量设置了重定向,但本地主机流量除外。
--- 默认.conf ---
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
RewriteEngine On
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
--- 默认.conf ---
我知道上述配置没有重定向到 https,我已经测试过这个,没有异常,我收到一条完全不同的消息,告诉我安全证书不匹配。
默认目录中有一个 .htaccess 文件,但它看起来很干净
--- .htaccess ---
RewriteEngine on \n
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
RewriteCond %{REQUEST_URI} ^/favicon.ico$
Options -Indexes
<Files deploy>
Order allow,deny
deny from all
</Files>
--- .htaccess ---
有人在 Azure 中使用过此功能吗?这是否仍是我在配置中遗漏的?还是由于其他配置问题,这在 Azure 中根本不起作用?这可能是 Azure 网络问题吗?
我感谢任何帮助。
干杯,- GaryC - UnKulMunki -
答案1
我找到了答案。
默认主机位于/var/www/html ...该目录中是 webapp 代码,以及它的 .htaccess 文件...
但是在父目录中(/var/www/) 是其他 .htaccess该文件重载了子目录中的指令.htaccess文件....
我为本地主机添加了一个例外,服务器状态现在可以正常工作了!
谢谢...Gary C