Uno de los beneficios de usar Ubuntu 20.04 y Apache es la capacidad de alojar múltiples sitios web en un sólo servidor. Esto es muy económico porque le permite usar un sólo servidor para todos sus dominios. Esta característica se llama alojamiento virtual. Es simplemente el aspecto de ejecutar diferentes dominios, por ejemplo dominio1.com y dominio2.com en una sola dirección IP de Ubuntu 20.04. El host virtual de Apache dirige a los visitantes a diferentes carpetas donde se encuentran los archivos de los dominios. El cliente que visite el sitio web nunca sabrá si el servidor es responsable de otros hosts virtuales.
No hay límites para la cantidad de sitios que puede alojar en su servidor Apache con Ubuntu 20.04. Sin embargo, asegúrese de que su servidor pueda manejar el tráfico y el espacio en disco. En esta guía, lo guiaremos a través del proceso de ejecutar 2 sitios diferentes en una sola instancia de Ubuntu 20.04.
Requisitos:
- Ubuntu 20.04 LTS (Desktop o Server)
- Un usuario no root con privilegios de sudo
- Tener instalado el servidor web Apache
En caso de que no tenga instalado Apache, puede ejecutar el siguiente comando en su servidor Ubuntu 20.04:
sudo apt-get install apache2
Para este tutorial usaremos dominio1.com y dominio2.com como nuestros valores de dominio ficticios y luego le mostraremos cómo editar el archivo de hosts locales en su computadora para probar los hosts virtuales.
Paso 1: creación de la estructura de archivos / directorios
Primero, necesitaremos crear una estructura de directorio que aloje los datos de nuestros sitios web. Apache tiene un directorio de nivel superior donde busca sitios web bajo la ruta:
/var/www/
Ingresamos al directorio por medio del comando en nuestra ventana terminal:
cd /var/www/
Creamos un subdirectorio para nuestros dos dominios.
Para hacer esto, ejecute los siguientes comandos en la ventana de terminal:
sudo mkdir -p /var/www/dominio1.com/public_html
sudo mkdir -p /var/www/dominio2.com/public_html
Paso 2: Cambiar la propiedad del directorio
Los directorios que creamos anteriormente son propiedad del usuario root. Por lo tanto, debemos cambiar la propiedad del directorio para permitir que el usuario registrado actual modifique los archivos. Usaremos el comando chown para hacer esto con la sintaxis a continuación
sudo chown -R $USER:$USER /var/www/dominio1.com/public_html
sudo chown -R $USER:$USER /var/www/dominio2.com/public_html
Paso 3: modifique los permisos de archivo
Necesitamos otorgar acceso de lectura a los dos directorios que creamos anteriormente. Esto hará que las páginas web sean de acceso público y esto significa que nuestros dos sitios web serán atendidos correctamente cuando lo solicite un navegador.
Para hacer esto, usamos el siguiente comando:
sudo chmod -R 755 /var/www
Paso 4: Cree contenido web de muestra para cada host / dominio virtual
Nuestros archivos y estructura de directorios ahora están configurados correctamente. A continuación, crearemos un archivo index.html de muestra para cada sitio web usando el editor nano usando los siguientes comandos:
Dominio1.com
sudo nano /var/www/dominio1.com/public_html/index.html
Copie y pegue el texto a continuación en el editor nano
<html>
<body>
Este es nuestro sitio web dominio1.com
</body>
</html>
Dominio2.com
sudo nano /var/www/dominio2.com/public_html/index.html
Copie y pegue el texto a continuación en el editor nano
<html>
<body>
Este es nuestro sitio web dominio2.com
</body>
</html>
Recuerde que debe cerrar y guardar cada archivo cuando haya terminado de editar presionando CTR + O , CTR + X.
Paso 5: Cree los archivos de configuración de hosts virtuales para nuestros dos sitios
Cuando Apache se instala por primera vez en el servidor Ubuntu 18.04, crea un archivo de host virtual predeterminado en la ruta
/etc/apache2/sites-available/000-default.conf
Necesitamos copiar ese archivo y usarlo para configurar nuestros hosts virtuales dominio1.com y dominio2.com. Para hacer esto, ejecuta el siguiente comando
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/dominio1.com.conf
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/dominio2.com.conf
Los archivos de configuración de Apache deben terminar con una extensión de archivo “.conf”.
Una vez que haya copiado los archivos, abra el primer archivo de hosts virtuales en un editor nano para editar su contenido con el siguiente comando:
sudo nano /etc/apache2/sites-available/dominio1.com.conf
Luego sobrescriba los valores con el texto a continuación:
<VirtualHost *:80 >
ServerAdmin [email protected]
ServerName dominio1.com
ServerAlias www.dominio1.com
DocumentRoot /var/www/dominio1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Como puede ver arriba, hemos referenciado el directorio /var/www/dominio1.com/public_html porque aquí es donde colocaremos los archivos de nuestro sitio web dominio1.com.
Necesitamos repetir el mismo procedimiento para nuestro host virtual dominio2.com
sudo nano /etc/apache2/sites-available/dominio2.com.conf
Luego sobrescriba los valores con el texto a continuación:
<VirtualHost *:80 >
ServerAdmin [email protected]
ServerName dominio2.com
ServerAlias www.dominio2.com
DocumentRoot /var/www/dominio2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Paso 6: habilite los dos hosts virtuales
Una vez que ya creamos dos archivos de configuración para nuestros hosts virtuales, ahora necesitamos habilitarlos usando los siguientes comandos:
sudo a2ensite dominio1.com.conf
sudo a2ensite dominio2.com.conf
Paso 7: reinicie Apache para que los cambios surtan efecto
Una vez que ya se agregaron los host virtuales en su servidor Ubuntu 20.04, deberá reiniciar Apache con el siguiente comando:
sudo service apache2 restart
Paso 8: Edite el archivo de “hosts” locales en su computadora
Sus hosts virtuales deberían estar en funcionamiento. Sin embargo, debido a que utilizamos valores ficticios para fines de prueba, necesitamos editar nuestro archivo de hosts locales (en la computadora local) y no el servidor.
Esto permitirá que nuestra computadora local se resuelva en la dirección IP pública correcta de nuestro servidor Ubuntu 20.04. Suponiendo que la dirección IP de su servidor público Ubuntu 20.04 sea 111.111.111.111 , deberá agregar estas entradas en su computadora local.
Si está ejecutando Linux, necesita editar el archivo /etc/hosts usando el comando a continuación:
sudo nano /etc/hosts
Luego agregue las siguientes entradas y guarde el archivo:
111.111.111.111 dominio1.com
111.111.111.111 dominio2.com
Si su computadora local ejecuta Windows, debe editar el archivo c:\windows\system32\drivers\etc\hosts usando un editor de texto como el bloc de notas y anexar las dos entradas anteriores.
Recuerde reemplazar 111.111.111.111 con la dirección IP pública real de su servidor
Paso 9: prueba tus hosts virtuales en tu navegador
Finalmente, debe visitar dominio1.com y dominio2.com en su navegador y si siguió los pasos correctamente, debería ver el contenido que creamos para los hosts virtuales sin ningún problema.
Conclusión
Alojar múltiples sitios web en un solo servidor Ubuntu 20.04 es así de fácil. Recuerde, puede replicar la idea para alojar un número ilimitado de hosts virtuales. Esto es muy útil si está ejecutando un sitio web de ambiente de pruebas en su red local.