El alojamiento virtual es un método para alojar varios nombres de dominio en un solo servidor. Hay dos tipos de alojamiento virtual: «alojamiento virtual basado en nombre» y «alojamiento virtual basado en IP». Con el alojamiento virtual basado en nombres, puede alojar múltiples sitios web en una sola máquina con una sola dirección IP.
Aquí, vamos a alojar dos sitios web, a saber, «www.virtualhost1.com» y «www.virtualhost2.com», en una sola IP «192.168.1.227» en el servidor web Apache, el servidor web más popular del mundo. .
Nota: aunque se usa el servidor Ubuntu 14.04 para este tutorial, las instrucciones serán similares para la mayoría de las distribuciones de Linux.
Primeros pasos: Instalación de Apache
Primero, debe actualizar su sistema y luego instalar Apache.
Para hacer esto, ejecute el siguiente comando:
sudo apt-get update sudo apt-get install apache2
Para verificar si el servidor web funciona o no, abra el navegador web y navegue hasta la URL https://192.168.1.227/ (suponiendo que la dirección IP de su servidor sea 192.168.1.227).
Debería ver que el servidor web Apache está funcionando.
Crear directorios virtuales
Primero, debe crear una estructura de directorio que contenga los datos del sitio web que estaremos entregando a los clientes.
Cree dos directorios para los sitios web «www.virtualhost1.com» y «www.virtualhost2.com».
sudo mkdir -p /var/www/html/www.virtualhost1.com sudo mkdir -p /var/www/html/www.virtualhost2.com
Nota: la carpeta predeterminada para alojar sus archivos es «/var/www/html». Para aquellos que están utilizando una ruta de archivo alternativa, deberán cambiar el código anterior en consecuencia.
Ahora necesita crear un archivo «index.html» para ambos sitios web. Esto será atendido por el servidor web Apache.
Cree un archivo index.html para el host virtual «www.virtualhost1.com»:
sudo nano /var/www/html/www.virtualhost1.com/index.html
Agrega el siguiente contenido:
<html> <head> <title>www.virtualhost1.com</title> </head> <body> <h1>Welcome To www.virtualhost1.com website</h1> </body> </html>
Guarde y cierre el archivo.
Del mismo modo, cree un archivo index.html para el host virtual «www.virtualhost2.com»:
sudo nano /var/www/html/www.virtualhost2.com/index.html
Agrega el siguiente contenido:
<html> <head> <title>www.virtualhost2.com</title> </head> <body> <h1>Welcome To www.virtualhost2.com website</h1> </body> </html>
Guarde y cierre el archivo.
Configuración de propiedad y permisos
De forma predeterminada, el servicio Apache se ejecuta como un usuario de «www-data» en Ubuntu. Ambos directorios virtuales que creamos anteriormente son propiedad de root. Debe cambiar la propiedad de estos dos directorios virtuales a «www-data», para que Apache pueda leer y escribir datos.
Para hacer esto, ejecute
sudo chown -R www-data:www-data /var/www/html/www.virtualhost1.com/ sudo chown -R www-data:www-data /var/www/html/www.virtualhost2.com/
Además, debe hacer que el directorio raíz web de Apache (/var/www/html) sea legible en todo el mundo para que todos puedan leer los archivos de ese directorio.
sudo chmod -R 755 /var/www/html
Crear archivos de host virtual:
De forma predeterminada, Apache viene con un archivo de host virtual predeterminado llamado «000-default.conf». Primero debe deshabilitar este archivo de host virtual.
Para hacer esto, ejecute el siguiente comando:
sudo a2dissite 000-default.conf
Ahora, cree un archivo de host virtual «www.virtualhost1.com.conf» para el host virtual «www.virtualhost1.com».
sudo nano /etc/apache2/sites-available/www.virtualhost1.com.conf
Agrega el siguiente contenido:
<VirtualHost *:80> ServerAdmin admin@virtualhost1.com ServerName www.virtualhost1.com DocumentRoot /var/www/html/www.virtualhost1.com ErrorLog ${APACHE_LOG_DIR}/www.virtualhost1.com_error.log CustomLog ${APACHE_LOG_DIR}/www.virtualhost1.com_access.log combined </VirtualHost>
Guarde y cierre el archivo.
Del mismo modo, cree un archivo de host virtual «www.virtualhost2.com.conf» para el host virtual «www.virtualhost2.com».
sudo nano /etc/apache2/sites-available/www.virtualhost2.com.conf
Agrega el siguiente contenido:
<VirtualHost *:80> ServerAdmin admin@virtualhost2.com ServerName www.virtualhost2.com DocumentRoot /var/www/html/www.virtualhost2.com ErrorLog ${APACHE_LOG_DIR}/www.virtualhost2.com_error.log CustomLog ${APACHE_LOG_DIR}/www.virtualhost2.com_access.log combined </VirtualHost>
Guarde y cierre el archivo.
Después de crear los archivos de host virtual, debe habilitar un nuevo host virtual.
Puedes hacer esto ejecutando
sudo a2ensite www.virtualhost1.com.conf sudo a2ensite www.virtualhost2.com.conf
Finalmente, reinicie el servicio Apache.
sudo /etc/init.d/apache2 restart
Prueba de hosts virtuales:
Debe agregar una entrada de host en todos y cada uno de los sistemas remotos o locales para resolver el sitio web por nombre.
Puede hacerlo editando el archivo “/etc/hosts”.
Agregue las siguientes líneas:
192.168.1.227 www.virtualhost1.com 192.168.1.227 www.virtualhost2.com
Guarde y cierre el archivo.
Abra su navegador web y navegue a las URL «https://www.virtualhost1.com» y «https://www.virtualhost2.com».
Debería ver las páginas de demostración de muestra que creamos anteriormente.
www.virtualhost1.com página de demostración:
www.virtualhost2.com página de demostración:
Conclusión
Espero que esta publicación lo ayude a configurar un host virtual en Ubuntu. No hay límite en la cantidad de servidores virtuales que Apache puede manejar, por lo que puede crear y alojar tantos sitios web como desee.