Ver los VirtualHosts configurados en el servidor Apache

Foro sobre el servidor Apache
Responder
gbeltran
Mensajes: 336
Registrado: 13 May 2023, 01:15
Ubicación: Valencia - España
Contactar:

Ver los VirtualHosts configurados en el servidor Apache

Mensaje por gbeltran »

Un virtualhost (o "host virtual") es una configuración del servidor web que permite alojar varios sitios web distintos en un mismo servidor y con una sola dirección IP. Gracias a virtualhosts, puedes servir páginas diferentes según:

El nombre de dominio que pide el navegador (ej.: ejemplo.com vs sitio2.com).
El puerto o la dirección IP usada.
La combinación de ambos.
Ejemplo sencillo: en un servidor Apache o Nginx puedes crear un virtualhost para ejemplo.com que apunte a la carpeta /var/www/ejemplo y otro para sitio2.com que apunte a /var/www/sitio2. El servidor revisa la petición (principalmente el encabezado Host) y entrega los archivos del sitio correspondiente.
Para ver todos los virtualhosts que tienes configurados en tu servidor Apache, ejecuta lo siguiente, dependiendo qué y cómo quieras visualizar la información:

- Lista de vhosts activos

Código: Seleccionar todo

sudo ls -l /etc/apache2/sites-enabled
- Contenido resumido de cada vhost habilitado

Código: Seleccionar todo

sudo apachectl -t -D DUMP_VHOSTS
- Muestra el contenido de cada archivo sites-available (pega solo los que quieras revisar; si prefieres que los revise todos, ejecuta):

Código: Seleccionar todo

for f in /etc/apache2/sites-available/*.conf; do echo "=== $f ==="; sed -n '1,200p' "$f"; echo; done
- Comprueba archivos globales que afectan a todos los vhosts

Código: Seleccionar todo

sudo sed -n '1,240p' /etc/apache2/apache2.conf

Código: Seleccionar todo

ls -l /etc/apache2/conf-enabled

Código: Seleccionar todo

for f in /etc/apache2/conf-enabled/*; do echo "=== $f ==="; sed -n '1,200p' "$f"; echo; done
- Hosts locales que apuntan a tus vhosts

Código: Seleccionar todo

cat /etc/hosts
Guillermo
Site Admin
Mensajes: 379
Registrado: 13 May 2023, 00:32
Ubicación: Valencia - España
Contactar:

Re: Ver los VirtualHosts configurados en el servidor Apache

Mensaje por Guillermo »

Script de automatización para el backup de configuraciones y VirtualHosts en Apache

Código: Seleccionar todo

#!/bin/bash

# Definir variables de ruta y fecha
FECHA=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups/apache_$FECHA"
LOG_FILE="/var/log/apache_backup.log"

# Crear el directorio de destino
mkdir -p "$BACKUP_DIR"

echo "Iniciando copia de seguridad de Apache: $FECHA" | tee -a "$LOG_FILE"

# 1. Copiar la configuración principal y VirtualHosts
# Se incluye /etc/apache2 completo para preservar sites-available, sites-enabled y mods
cp -r /etc/apache2 "$BACKUP_DIR/config_etc"

# 2. Opcional: Copiar archivos de log (solo los últimos)
cp -r /var/log/apache2 "$BACKUP_DIR/logs"

# 3. Comprimir el backup para ahorrar espacio
tar -czf "${BACKUP_DIR}.tar.gz" -C "$BACKUP_DIR" .

# Limpieza: eliminar la carpeta temporal, dejar solo el .tar.gz
rm -rf "$BACKUP_DIR"

echo "Copia completada con éxito en ${BACKUP_DIR}.tar.gz" | tee -a "$LOG_FILE"
Explicación del script paso a paso:

- Definición de variables: Se utiliza $(date ...) para generar una marca de tiempo única, evitando que un backup nuevo sobrescriba al anterior; además, se definen rutas claras para el destino y el registro de actividad (log).

- Creación del directorio: El comando mkdir -p asegura que la carpeta de destino exista antes de intentar copiar archivos, creando carpetas intermedias si es necesario.

- Copia recursiva (cp -r): En lugar de copiar archivos individuales, el script respalda todo el directorio /etc/apache2, lo que incluye automáticamente el archivo maestro apache2.conf, todos los archivos .conf de los VirtualHosts en sites-available, y los enlaces simbólicos de sites-enabled.

- Gestión de Logs: Se realiza una copia de /var/log/apache2 para mantener un registro histórico de errores y accesos en el momento del respaldo, útil para auditorías.

- Compresión con tar: Se utiliza el formato .tar.gz para reducir drásticamente el tamaño del archivo resultante, facilitando su transferencia a un almacenamiento externo o la nube.

- Limpieza y verificación: El script elimina la carpeta temporal de trabajo tras la compresión y envía un mensaje de confirmación tanto a la consola como al archivo de log para verificar que el proceso terminó correctamente.
Responder