Я использую Linux в Azure (Ubuntu 16.04.06 LTS) и пытаюсь включить статус Apache. Однако после включения модуля состояния, когда я перехожу к http: // localhost / статус-сервера Я получаю ошибку
$ wget http: // локальный / статус-сервера /
--2020-02-27 20:58: 26-- http: // локальный / статус-сервера / Разрешение localhost (localhost) ... 127.0.0.1 Подключение к localhost (localhost) | 127.0.0.1 |: 80 ... connected. HTTP-запрос отправлен, ожидает ответа ... 500 Внутренняя ошибка сервера 2020-02-27 20:58:26 ОШИБКА 500: внутренняя ошибка сервера.
Когда я смотрю на апач журнал ошибок Я получаю сообщение о слишком большом количестве внутренних перенаправлений
[Чт, 27 февраля, 20:58: 26.451285 2020] [ядро: ошибка] [pid 86787] [клиент 127.0.0.1:51734] AH00124: Превышено ограничение в 10 внутренних перенаправлений для запроса из-за возможной ошибки конфигурации. При необходимости используйте LimitInternalRecursion, чтобы увеличить лимит. Используйте «Отладка LogLevel», чтобы получить трассировку.
Я использовал стандартную команду: sudo a2enmod статус чтобы включить службу, а затем перезагрузите apache. Я также использую конфигурационный файл по умолчанию:
---- status.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>
---- status.conf ---
У меня есть перенаправление для всего http-трафика, но есть исключение для трафика локального хоста.
--- default.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>
--- default.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 -
Я нашел ответ.
Хост по умолчанию существует в / var / www / html... В этом каталоге находится код веб-приложения и файл .htaccess ...
Однако в родительском каталоге ( / var / www / ) является ДРУГОЙ .htaccess файл, который перегружал инструкции из подкаталога .htaccess файл....
Я добавил исключение для localhost, и теперь сервер-статус работает!
Спасибо ... Гэри Си