Setting Up Name Based Virtualhost Apache

Configuración de servidor virtual Apache basado en nombres

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.

Página de prueba de Apache

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:

Apache-nombre-virtualhost1

www.virtualhost2.com página de demostración:

Apache-nombre-virtualhost2

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.

Experto Geek - Tu Guía en Tendencias Tecnológicas