Fig. 1: VirtualHost basado en Apache IP.
VirtualHost basado en el nombre: En VirtualHost basado en nombres, un servidor Apache tiene una sola dirección IP y múltiples nombres de dominio configurados para cada sitio web. En un servidor DNS, a cada uno de estos nombres de dominio se les asigna la dirección IP del servidor Apache. Dependiendo del nombre de dominio que usara el cliente, el servidor devuelve diferentes sitios web.
Fig. 2: VirtualHost basado en el nombre de Apache.
En este artículo, le mostraré cómo configurar el nombre de apache basado en VirtualHost. Estaré usando Ubuntu 18.04 LTS para la demostración. Pero debería funcionar en cualquier distribución moderna de Linux con poco o ningún cambio. Entonces empecemos.
Instalación del servidor web Apache 2:
El servidor web Apache 2 está disponible en el repositorio oficial de paquetes de Ubuntu 18.04 LTS. Por lo tanto, puede instalarlo fácilmente con el Administrador de paquetes APT.
Primero, actualice el caché del repositorio del paquete APT con el siguiente comando:
$ sudo apt actualización
Ahora, ejecute el siguiente comando para instalar el servidor web Apache 2:
$ sudo apt install apache2
Ahora presiona Y y luego presiona continuar.
Se debe instalar el servidor web Apache 2.
Configuración de DNS:
Ahora, debe configurar el servidor DNS para asignar los nombres de dominio que desea usar para VirtualHost en la dirección IP de su servidor Apache.
Puede encontrar la dirección IP de su servidor Apache con el siguiente comando:
$ ip a | egrep "inet"
Como puede ver, la dirección IP en mi caso es 192.168.21.166. Será diferente para ti. Entonces, asegúrese de reemplazarlo con el tuyo de ahora en adelante.
Si desea aprender a configurar Apache Virtualhost localmente, puede usar el /etc/huéspedes Archivo para la resolución local de DNS/Nombre.
Para configurar la resolución DNS local, abra el /etc/huéspedes presentar con nano como sigue:
$ sudo nano /etc /anfitriones
Ahora, agregue la línea marcada en la captura de pantalla a continuación al archivo. Entonces presione + X seguido por Y y Para guardar el archivo.
Ahora, la resolución de nombres locales debería funcionar.
Estructuras de directorio:
Quiero mantener todos los datos del sitio web de mi apache virtualhost en un directorio específico /www. Aquí, quiero crear un directorio para cada usuario. Cada usuario tendrá el suyo public_html/ y registros/ directorio también.
Por ejemplo, para 3 usuarios Bob (ejemplo1.com), Alice (Ejemplo2.com), Linda (ejemplo3.com), La estructura del directorio es la siguiente:
/wwwUna manera fácil de hacerlo es crear un directorio de plantilla o esqueleto y colocar la estructura del directorio allí. Luego cree cada usuarios utilizando este directorio de esqueleto.
Primero, copie el contenido del directorio de esqueleto predeterminado /etc/skel a otro directorio /etc/skel-www como sigue:
$ sudo cp -rv /etc /skel /etc /skel -www
Ahora, navegue al nuevo directorio de esqueleto de la siguiente manera:
$ cd /etc /skel-www
Luego cree la estructura del directorio deseada dentro del directorio de esqueleto de la siguiente manera:
$ sudo mkdir -p www/public_html, Logs
También puede crear un valor predeterminado índice.html archivo en el public_html/ directorio si quieres.
$ Echo "Funciona
"| Sudo Tee www/public_html/index.html
Ahora, crea el /www directorio con el siguiente comando:
$ sudo mkdir /www
Creación de usuarios:
Ahora puede crear el usuario Beto para www.Ejemplo 1.com como sigue:
$ Sudo UserAdd-Create-Home--Home-Dir /www /Ejemplo1.com -shell
/bin/bash--gid www-data--skel/etc/skel-www bob
De la misma manera, crea el usuario Alicia para www.ejemplo2.com como sigue:
$ Sudo UserAdd-Create-Home-Home-Dir /www /Ejemplo2.com --shell /bin /bash
--GID www-data--skel /etc /skel-www alice
Nuevamente, cree el usuario Linda para www.ejemplo3.com como sigue:
$ Sudo UserAdd-Create-Home-Home-Dir /www /Ejemplo3.com --shell /bin /bash
--GID www-data--skel /etc /skel-www linda
Aquí, asigné el grupo principal de cada usuario a datos www. Por defecto, el servidor Apache se ejecuta como este grupo. Si no hubiera hecho eso, Apache Server no podrá acceder a los archivos en el public_html/ directorio y crear archivos de registro en el registros/ directorio.
Configuración de Apache VirtualHost:
Ahora, está listo para configurar Apache VirtualHost para 3 usuarios Beto (www.Ejemplo 1.com), Alicia (www.ejemplo2.com) y linda (www.ejemplo3.com).
El directorio de configuración del sitio de Apache predeterminado en Ubuntu es /etc/apache2/sites disponible.
Ahora, navegue al directorio /etc/apache2/sites disponible/ como sigue.
$ cd/etc/apache2/sites disponible/
Primero, cree un nuevo archivo de configuración para Bob www.Ejemplo 1.comunicarse.confusión como sigue:
$ sudo nano www.Ejemplo 1.comunicarse.confusión
Se debe abrir un editor de texto.
Ahora, escriba las siguientes líneas.
ServerName Ejemplo1.comunicarse
Serveralias www.Ejemplo 1.comunicarse
DocumentRoot "/www/ejemplo1.com/www/public_html "
Opciones -FreatosSymlinks +Multiviews +Índices
Permateverride todo
Requiere todos otorgados
ErrorLog "/www/ejemplo1.com/www/logs/error.registro"
CustomLog "/www/ejemplo1.com/www/logs/access.registro "combinado
Nota: Cambie los textos en negrita de acuerdo con sus requisitos.
Finalmente, el archivo de configuración www.ejemplo.comunicarse.confusión Debería aparecer como sigue. Prensa + X seguido de y y Para guardar el archivo de configuración.
simplemente copiar el archivo de configuración para Beto (www.Ejemplo 1.comunicarse.confusión) y hacer qué pocos cambios se requieren.
Copiar el archivo de configuración de Beto para Alicia y linda Con los siguientes comandos:
$ sudo cp -v www.Ejemplo 1.comunicarse.Conf www.ejemplo2.comunicarse.confusión
$ sudo cp -v www.Ejemplo 1.comunicarse.Conf www.ejemplo3.comunicarse.confusión
Ahora, edite el archivo de configuración de Alicia como sigue:
$ sudo nano www.ejemplo2.comunicarse.confusión
Ahora, cambie todas las ocurrencias de Ejemplo 1 a ejemplo2. Luego guarde el archivo.
Hacer lo mismo por linda.
$ sudo nano www.ejemplo3.comunicarse.confusión
Cambiar todos los acontecimientos de Ejemplo 1 a ejemplo3 y guarda el archivo.
Habilitando configuraciones de virtualhost:
Ahora, deshabilite la configuración del sitio web de Apache predeterminada de la siguiente manera:
$ sudo a2dissite 000 default.confusión
Ahora, habilite las configuraciones VirtualHost www.Ejemplo 1.comunicarse.confusión, www.ejemplo2.comunicarse.confusión, www.ejemplo3.comunicarse.confusión como sigue:
$ sudo a2ensite www.Ejemplo 1.comunicarse.Conf www.ejemplo2.comunicarse.Conf www.ejemplo3.comunicarse.confusión
Finalmente, reinicie el servicio Apache de la siguiente manera:
$ sudo systemctl reiniciar apache2
Ahora, intente acceder a los sitios web www.Ejemplo 1.com, www.ejemplo2.com, www.ejemplo3.comunicarse
Como puede ver, todos estos sitios web funcionan como se esperaba.
NOTA: Cambié la página predeterminada índice.html para cada sitio para que sea un poco diferente para cada sitio web para fines de prueba. De lo contrario, no podrá saber si la configuración de virtualhost funciona o no.
Entonces, así es como configuras Apache VirtualHost basado en el nombre en Ubuntu 18.04 LTS. Gracias por leer este artículo.