Figura 1: VirtualHost basado en IP de Apache.
VirtualHost basado en nombre: En VirtualHost basado en nombres, un servidor Apache tiene una única dirección IP y varios nombres de dominio configurados para cada sitio web. En un servidor DNS, a cada uno de estos nombres de dominio se le asigna la dirección IP del servidor Apache. Dependiendo del nombre de dominio que utilizó 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 VirtualHost basado en el nombre de Apache. Usaré Ubuntu 18.04 LTS para la demostración. Pero debería funcionar en cualquier distribución de Linux moderna 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 de paquetes oficial de Ubuntu 18.04 LTS. Por lo tanto, puede instalarlo fácilmente con el administrador de paquetes APT.
Primero, actualice la caché del repositorio de paquetes APT con el siguiente comando:
actualización de $ sudo apt
Ahora, ejecute el siguiente comando para instalar el servidor web Apache 2:
$ sudo apt instalar apache2
Ahora presiona y y luego presione
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 a 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. Por lo tanto, asegúrese de reemplazarlo por el suyo a partir de ahora.
Si desea aprender a configurar Apache VirtualHost localmente, puede usar el / etc / hosts archivo para resolución de nombres / DNS local.
Para configurar la resolución de DNS local, abra el / etc / hosts archivar con nano como sigue:
$ sudo nano / etc / hosts
Ahora, agregue la línea como se marca en la captura de pantalla a continuación al archivo. Entonces presione
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á su propio 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:
/www- Ejemplo 1.com /
- www/
- public_html /
- índice.html
- registros /
- ejemplo2.com /
- www/
- public_html /
- índice.html
- registros /
- ejemplo3.com /
- www/
- public_html /
- índice.html
- registros /
Una forma sencilla de hacerlo es crear una plantilla o un directorio esqueleto y colocar la estructura del directorio allí. Luego crea cada usuario usando este directorio esqueleto.
Primero, copie el contenido del directorio esqueleto predeterminado / etc / skel a otro directorio / etc / skel-www como sigue:
$ sudo cp -rv / etc / skel / etc / skel-www
Ahora, navegue hasta el nuevo directorio de esqueleto de la siguiente manera:
$ cd / etc / skel-www
Luego cree la estructura de directorio deseada dentro del directorio esqueleto de la siguiente manera:
$ sudo mkdir -p www / public_html, logs
También puede crear una í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 puedes crear el usuario Beto para www.Ejemplo 1.com de la siguiente manera:
$ sudo useradd --create-home --home-dir / www / example1.com --shell/ bin / bash --gid www-data --skel / etc / skel-www bob
De la misma forma, crea el usuario Alicia para www.ejemplo2.com de la siguiente manera:
$ sudo useradd --create-home --home-dir / www / example2.com --shell / bin / bash--gid www-data --skel / etc / skel-www alice
Nuevamente, cree el usuario linda para www.ejemplo3.com de la siguiente manera:
$ sudo useradd --create-home --home-dir / www / example3.com --shell / bin / bash--gid www-data --skel / etc / skel-www linda
Aquí, asigné el grupo principal de cada usuario a www-datos. De forma predeterminada, el servidor Apache se ejecuta como este grupo. Si no lo hubiera hecho, el servidor Apache 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 Apache predeterminado en Ubuntu es / etc / apache2 / sites-available.
Ahora, navega al directorio / etc / apache2 / sites-available / como sigue.
$ cd / etc / apache2 / sites-available /
Primero, cree un nuevo archivo de configuración para bob www.Ejemplo 1.com.conf como sigue:
$ sudo nano www.Ejemplo 1.com.conf
Se debe abrir un editor de texto.
Ahora, escriba las siguientes líneas.
Ejemplo 1 de ServerName.comServerAlias www.Ejemplo 1.com
DocumentRoot "/ www / example1.com / www / public_html "
Opciones -FollowSymLinks + MultiViews + Índices
Permitir anular todo
Requerir todo concedido
ErrorLog "/ www / example1.com / www / logs / error.Iniciar sesión"
CustomLog "/ www / example1.com / www / logs / access.log "combinado
NOTA: Cambie los textos en negrita según sus necesidades.
Finalmente, el archivo de configuración www.ejemplo.com.conf debería verse como sigue. prensa
para simplemente copiar el archivo de configuración para Beto (www.Ejemplo 1.com.conf) y haga los pequeños cambios necesarios.
Copie el archivo de configuración de Beto por Alicia y linda con los siguientes comandos:
$ sudo cp -v www.Ejemplo 1.com.conf www.ejemplo2.com.conf$ sudo cp -v www.Ejemplo 1.com.conf www.ejemplo3.com.conf
Ahora, edite el archivo de configuración de Alicia como sigue:
$ sudo nano www.ejemplo2.com.conf
Ahora, cambie todas las apariciones de Ejemplo 1 a ejemplo2. Luego guarda el archivo.
Haz lo mismo por linda.
$ sudo nano www.ejemplo3.com.conf
Cambiar todas las apariciones de Ejemplo 1 a ejemplo3 y guarda el archivo.
Habilitación de configuraciones de VirtualHost:
Ahora, deshabilite la configuración del sitio web predeterminado de Apache de la siguiente manera:
$ sudo a2dissite 000-default.conf
Ahora, habilite las configuraciones de VirtualHost www.Ejemplo 1.com.conf, www.ejemplo2.com.conf, www.ejemplo3.com.conf como sigue:
$ sudo a2ensite www.Ejemplo 1.com.conf www.ejemplo2.com.conf www.ejemplo3.com.conf
Finalmente, reinicie el servicio Apache de la siguiente manera:
$ sudo systemctl reiniciar apache2
Prueba de VirtualHosts:
Ahora, intente acceder a los sitios web www.Ejemplo 1.com, www.ejemplo2.com, www.ejemplo3.com
Como puede ver, todos estos sitios web funcionan como se esperaba.
NOTA: Cambié la página predeterminada índice.html para cada sitio, de modo que sea un poco diferente para cada sitio web con fines de prueba. De lo contrario, no podrá saber si la configuración de VirtualHost funciona o no.
Entonces, así es como se configura Apache VirtualHost basado en nombres en Ubuntu 18.04 LTS. Gracias por leer este artículo.