Назад | Перейти на главную страницу

Статус сервера Apache застрял в цикле перенаправления

Я использую 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, и теперь сервер-статус работает!

Спасибо ... Гэри Си