El alojamiento virtual se utiliza para alojar múltiples sitios web en un solo servidor web. El servidor web puede ser servidor web Apache HTTP , Microsoft IIS , Lighttpd , openLiteSpeed , etc. Esta guía le mostrará cómo configurar servidores virtuales Apache en Debian 9 /
Tipos de alojamiento virtual
Hay dos tipos de alojamiento virtual en el servidor web Apache,
1. Alojamiento virtual basado en nombres
2. Alojamiento virtual basado en IP
Con el alojamiento virtual basado en nombres, podemos configurar múltiples sitios web en una sola dirección IP, mientras que en el basado en IP; podemos configurar solo un sitio web en una sola dirección IP.
Supuestos
Para una demostración, alojaremos dos sitios web llamados "www.itzgeek1.local y “www.itzgeek2.local ” en un único servidor web.
Nombre de host del servidor:server.itzgeek.local
Dirección IP:192.168.12.3
Instalar servidor web Apache
Antes de instalar Apache, actualice el índice del repositorio.
sudo apt-get update
Instale el servidor web Apache usando el siguiente comando.
sudo apt-get install apache2
Una vez instalado, el sistema iniciará automáticamente el servicio Apache.
Para probar su instalación, abra un navegador web y señale la URL.
http://localhostO
http://tu.dirección.ip.ress
Obtendrías la página predeterminada como se muestra a continuación. La siguiente imagen muestra la página predeterminada de Apache2 en Debian 9.
Configurar servidores virtuales Apache
Crear directorios públicos
Ahora, crearemos un directorio para guardar nuestros documentos web, es decir, archivos .html. Use el siguiente comando para crear un directorio para cada sitio web, “www.itzgeek1.local ” y “www.itzgeek2.local “.
sudo mkdir -p /var/www/html/www.itzgeek1.local sudo mkdir -p /var/www/html/www.itzgeek2.local
Crear página de demostración para hosts virtuales
Ahora, colocaremos un archivo index.html en ambos directorios para verificar si el alojamiento virtual basado en el nombre funciona o no.
Crea un index.html para “www.itzgeek1.local ” servidor virtual.
sudo nano /var/www/html/www.itzgeek1.local/index.html
Coloque el siguiente contenido en el archivo.
<html> <head> <title>www.itzgeek1.local</title> </head> <body> <h1>Welcome To www.itzgeek1.local website</h1> </body> </html>
Crea un index.html para “www.itzgeek2.local ” servidor virtual.
sudo nano /var/www/html/www.itzgeek2.local/index.html
Coloque el siguiente contenido en el archivo.
<html> <head> <title>www.itzgeek2.local</title> </head> <body> <h1>Welcome To wwww.itzgeek2.local website</h1> </body> </html>
Configurar la propiedad y los permisos del directorio
De forma predeterminada, el servicio de apache se ejecuta como un usuario de www-data. Ahora, los dos directorios virtuales que creamos anteriormente son propiedad de root y debemos cambiar la propiedad a www-data para que ese servidor apache pueda escribir y leer datos en él.
sudo chown -R www-data:www-data /var/www/html
Además, puede hacer que los directorios virtuales sean legibles en todo el mundo.
sudo chmod 755 /var/www/html/
Ahora, estamos listos para crear un archivo de configuración para hosts virtuales.
Crear archivos de host virtual
Ahora, cree un archivo de host virtual "www.itzgeek1.local.conf para el host virtual “www.itzgeek1.local. El archivo de configuración del host virtual debe terminar con una extensión .conf.
sudo nano /etc/apache2/sites-available/www.itzgeek1.local.conf
Agregue el siguiente contenido al archivo.
<VirtualHost *:80> ServerAdmin [email protected] ServerName www.itzgeek1.local DocumentRoot /var/www/html/www.itzgeek1.local ErrorLog ${APACHE_LOG_DIR}/www.itzgeek1.local_error.log CustomLog ${APACHE_LOG_DIR}/www.itzgeek1.local_ccess.log combined </VirtualHost>
De la misma manera, cree un segundo archivo de host virtual.
sudo nano /etc/apache2/sites-available/www.itzgeek2.local.conf
Coloque el siguiente contenido en el archivo.
<VirtualHost *:80> ServerAdmin [email protected] ServerName www.itzgeek2.local DocumentRoot /var/www/html/www.itzgeek2.local ErrorLog ${APACHE_LOG_DIR}/www.itzgeek2.local_error.log CustomLog ${APACHE_LOG_DIR}/www.itzgeek2.local_ccess.log combined </VirtualHost>
Después de crear los archivos de host virtual, habilite los nuevos hosts virtuales que acabamos de crear creando un enlace simbólico a los sitios habilitados directorio.
sudo ln -s /etc/apache2/sites-available/www.itzgeek1.local.conf /etc/apache2/sites-enabled/ sudo ln -s /etc/apache2/sites-available/www.itzgeek2.local.conf /etc/apache2/sites-enabled/
Reinicie el servicio de apache.
sudo service apache2 restart
Verificación de hosts virtuales
Si no tiene un servidor DNS en su entorno, edite "/etc/hosts ” archivo.
sudo nano /etc/hosts
Agregue las siguientes entradas.
192.168.12.3 www.itzgeek1.local 192.168.12.3 www.itzgeek2.local
Si usa máquinas basadas en Windows, edite "hosts ” archivo en “C:\Windows\System32\drivers\etc ” directorio.
Abre tu navegador y apunta a la URL http://www.itzgeek1.local o http://www.itzgeek2.local . Debería ver las páginas de demostración que creamos anteriormente.
www.itzgeek1.página de demostración local:
www.itzgeek2.página de demostración local:
Eso es todo.