Host virtual que impide la directiva de estado del servidor

Host virtual que impide la directiva de estado del servidor

En mi máquina virtual Ubuntu 16.4, configuré Apache 2.4 con éxito y tengo varios vhosts configurados. Quiero ver el estado del servidor, pero mi primer vhost sigue impidiéndolo. He leído y releído los documentos de Apache 2.4 sobre esto. Puse lo siguiente en mi /etc/apache2/apache.conf, luego en /etc/apache2/mods-enabled/status.conf y finalmente en /etc/apache2/sites-enabled/0firstvhost.conf

<Location "/server-status">
      SetHandler server-status
      Require ip 10.211.55.0/24
    </Location>

Al leer muchas publicaciones sobre este tema en los documentos de Apache y ServerFault, probé muchas variaciones que son aplicables a Apache 2.4.

Puedo verificar que mod_status se está ejecutando viéndolo cuando se ejecuta

sudo apachectl -M | grep status

Por supuesto, verifiqué la prueba de configuración de apachectl cada vez y reinicié el servicio apache2 para ver si puedo navegar a 10.211.55.3/server-status pero la aplicación PHP Drupal sigue interfiriendo. No hay ningún .htaccess en la raíz de este vhost.

He colocado esta directiva dentro y fuera de la directiva.

Verifico un navegador en el complemento IP de la VM y también dentro de la ejecución de la VM

curl localhost/server-status
curl 10.211.55.3/server-status

La aplicación Drupal se lee primero. ¿Qué probar a continuación? gracias, sam

Respuesta1

Encontré esto que sugeríael .htaccess para el sitio predeterminado impedía mod_statusde trabajar. Su solución no funcionó para mí, pero como de todos modos estoy trabajando con hosts virtuales, podría crear un host virtual sin .htaccess. Agregué un host arbitrario en el archivo /etc/hosts de Debian:

127.0.0.1  foo.org

Creé un directorio vacío entre mis otros hosts virtuales, creé un nuevo sitio y lo habilité.

<Directory /home/foo.org>
</Directory>
<Location /server-status>
    SetHandler server-status
    Require local
    Require ip 127.0.0.1
    Require ip ::1
</Location>

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName foo.org
</VirtualHost>

Entonces en localhost puedo ver los datos.

curl foo.org/server-status

Respuesta2

Yo también tuve el problema de miAnfitrión virtual /etc/sites-enabled/example.confmanejar solicitudes para http://localhost/server-info, que en realidad quería que fueran manejadas porinformación_mod.

# File /etc/sites-enabled/example.conf
<VirtualHost *:80>
  ServerName example.com
  
  # ...
</VirtualHost>

En mi humilde opinión, el problema era que Apache tiene un comportamiento de manejo de solicitudes alternativo predeterminado si alguna solicitud no coincide con ninguna configurada.Anfitrión virtual'sNombre del servidor(ver1,2). Comoinformación_modLos archivos de configuración predeterminados /etc/apache2/mods-available/info.loady /etc/apache2/mods-available/info.confno especifican los suyos propios.Anfitrión virtualyNombre del servidor, Supongo que la alternativa de Apache se activó, ya que miejemplo.conf VirtualHostmanejar la solicitud de http://localhost/server-info.

Solucioné el problema de la siguiente manera:

Crea un archivo /etc/apache2/mods-available/localhost-server-info.load(avisomods-available). Esto es unCopiardel original info.load:

LoadModule info_module /usr/lib/apache2/modules/mod_info.so

Crea un archivo /etc/apache2/sites-available/localhost-server-info.conf(avisosites-available). Esta es una adaptación del original info.conf, envolviendo su contenido dentro de unAnfitrión virtualy proporcionando unNombre del servidor:

# Get mod_info information by requesting http://localhost/server-info
#
# Enable by executing
# service apache2 stop
# a2dismod info
# a2enmod localhost-server-info
# a2ensite localhost-server-info
# service apache2 start
#
# Disable by executing
# service apache2 stop
# a2dissite localhost-server-info
# a2dismod localhost-server-info
# service apache2 start

<IfModule mod_info.c>
  <VirtualHost *:80>
    # Adapt ServerName to your needs
    # Avoid ServerName collision with any other active VirtualHosts
    ServerName localhost

    <Location /server-info>
      SetHandler server-info
      # Adapt Require to your needs
      # Require local
      # Require ip 192.0.2.0/24
    </Location>
  </virtualHost>
</IfModule>

Desactivar el originalinformaciónmódulo (en caso de que todavía esté habilitado) y habilite el nuevoinformación-servidor-localhostmóduloysitio:

service apache2 stop
a2dismod info
a2enmod localhost-server-info
a2ensite localhost-server-info
service apache2 start
  • http://ejemplo.com/info-servidorahora debería ser manejado por elejemplo.comVirtualHost (probablemente mostrando una página 404).
  • http://localhost/server-info ahora debería ser manejado porinformación_mod.
  • http://127.0.0.1/información-servidory otros no configuradosNombre del servidors deben manejarse de acuerdo con el manejo alternativo de Apache, por ejemplo, en mi ejemplo mediante elejemplo.comVirtualHost (probablemente mostrando una página 404).

información relacionada