Cómo crear Apache Virtual Host en Ubuntu 20.04 LTS

1 mar 2021 4 min di lettura
Cómo crear Apache Virtual Host en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Un host virtual es una directiva de configuración de Apache que le permite ejecutar más de un sitio web en un solo servidor. Con Virtual Hosts, puede especificar la raíz del sitio (el directorio que contiene los archivos del sitio web), crear una política de seguridad separada para cada sitio, usar diferentes certificados SSL y mucho más.

Este artículo describe cómo configurar hosts virtuales Apache en Ubuntu 20.04 LTS Focal Fossa.

Prerrequisitos

Asegúrese de cumplir con los siguientes requisitos antes de continuar con la guía:

  • Uno o más nombres de dominio que apuntan a la IP de su servidor público. En este tutorial vamos a domain1.com utilizando domain1.com y domain2.com, tenga cuidado al cambiar los valores siguientes a su propio nombre de dominio.
  • Apache instalado en su sistema Ubuntu.
  • Ha iniciado sesión como root o usuario con privilegios de sudo.

Si desea crear hosts virtuales con Apache en un servidor remoto, continúe leyendo, de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no usa el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Crea la estructura del directorio

La raíz del documento es el directorio donde se almacenan los archivos del sitio web para un nombre de dominio y se ofrecen en respuesta a las solicitudes. Puede establecer la raíz del documento en cualquier ubicación que desee, en este ejemplo usaremos la siguiente estructura de directorio:

/var/www/├── domain1.com
 │  └── public_html
 ├── domain2.com
 │  └── public_html

Cada dominio alojado en el servidor tendrá la raíz del documento establecida en /var/www/<domain_name>/public_html.

Comience creando el directorio raíz para el dominio con el comando mkdir:

sudo mkdir -p /var/www/domain1.com/public_html

También crearemos un index.html dentro del directorio raíz del documento del dominio que se mostrará cuando visite el dominio en su navegador.

Luego, con su editor de texto favorito, cree el siguiente archivo:

sudo nano /var/www/domain1.com/public_html/index.html

Pegue el siguiente texto en el archivo:

<!DOCTYPE html>
 <html lang="en" dir="ltr">
 <head>
 <meta charset="utf-8">
 <title>Welcome to domain1.com</title>
 </head>
 <body>
 <h1>Success! domain1.com home page!</h1>
 </body>
 </html>

Dado que los comandos anteriores se ejecutan como el usuario sudo, los archivos y directorios recién creados son propiedad de root. Para evitar problemas de autorización, cambie la propiedad del directorio raíz del documento del dominio y todos los archivos dentro del directorio al usuario de apache ( www-data ):

sudo chown -R www-data: /var/www/domain1.com

Crea un host virtual

En los sistemas Ubuntu, los archivos de configuración del host virtual Apache se encuentran en el /etc/apache2/sites-available. Se pueden habilitar creando enlaces simbólicos al /etc/apache2/sites-enabled, que Apache lee durante el inicio.

Abra su editor de texto favorito y cree el siguiente archivo de configuración de host virtual básico:

sudo nano /etc/apache2/sites-available/domain1.com.conf

Pegue el siguiente código, cambiando el nombre de dominio:

<VirtualHost *:80>
 ServerName domain1.com
 ServerAlias www.domain1.com
 ServerAdmin [email protected]
 DocumentRoot /var/www/domain1.com/public_html

 <Directory /var/www/domain1.com/public_html>
 Options -Indexes +FollowSymLinks
 AllowOverride All
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
 CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
 </VirtualHost>
  • ServerName: el dominio que debe coincidir con esta configuración de host virtual. Este debe ser su nombre de dominio.
  • ServerAlias: todos los demás dominios o subdominios que deben coincidir con este host virtual, como el subdominio www
  • DocumentRoot: el directorio desde el que Apache servirá los archivos de dominio.
  • Options: esta directiva controla qué funciones del servidor están disponibles en un directorio específico.
  • -Indexes: evita listados de directorios.
  • FollowSymLinks: cuando esta opción está habilitada, Apache seguirá los enlaces simbólicos.
  • AllowOverride: especifica qué directivas declaradas en el .htaccess pueden anular las directivas de configuración.
  • ErrorLog, CustomLog: especifica la ruta de los archivos de registro.

Puede nombrar el archivo de configuración como desee, pero se recomienda que utilice el nombre de dominio como el nombre del archivo de configuración del host virtual.

Para habilitar el nuevo archivo de host virtual, use el a2ensite auxiliar a2ensite que crea un enlace simbólico desde el archivo de host virtual al directorio sites-enabled

sudo a2ensite domain1.com

La otra opción es crear manualmente un enlace simbólico como se muestra a continuación:

sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/

Cuando termine, pruebe la configuración en busca de errores de sintaxis con:

sudo apachectl configtest

Si no hay errores, verá el siguiente resultado:

Syntax OK

Reinicie el servicio Apache para que los cambios surtan efecto:

sudo systemctl restart apache2

Finalmente, para verificar que todo funciona como se esperaba, abre el navegador y conéctate a tu nombre de dominio http://domain1.com y verás el contenido de la index.html creada anteriormente.

Conclusión

Aprendió a crear una configuración con Apache Virtual Host para alojar múltiples dominios en un solo servidor Ubuntu 20.04 LTS Focal Fossa.

Repita los pasos anteriores para crear hosts virtuales adicionales para todos sus dominios.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.