Apache Virtual Hosts le permite ejecutar más de un sitio web en una sola máquina. Con Virtual Hosts, puede especificar la raíz del documento 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 explica cómo configurar Apache Virtual Hosts en un servidor CentOS 8.

requisitos previos

Asegúrese de haber cumplido con los siguientes requisitos antes de continuar con este tutorial:

  • Nombre de dominio que apunta a la IP de su servidor público.
  • Apache instalado en su sistema CentOS .
  • Ha iniciado sesión como root o usuario con privilegios sudo .

Crear estructura de directorio

La raíz del documento es el directorio en el que se almacenan y sirven los archivos del sitio web para un nombre de dominio en respuesta a las solicitudes. La raíz del documento se puede configurar en cualquier ubicación que desee.

Usaremos la siguiente estructura de directorios:

/var/www/
├── example.com
│   └── public_html
├── example2.com
│   └── public_html
├── example3.com
│   └── public_html

Para cada dominio que se hospedará en el servidor, crearemos un directorio separado dentro de /var/wwwDentro del directorio del dominio, crearemos un public_htmldirectorio que será el directorio raíz del documento del dominio y almacenará los archivos del sitio web del dominio.

Comencemos creando el directorio raíz para el dominio example.com:

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

Para fines de prueba, cree un index.htmlarchivo dentro del directorio raíz del documento del dominio:

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

Copie y pegue el siguiente código en el archivo:

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

Para evitar cualquier problema de permisos, cambie la propiedad del directorio raíz del documento de dominio a usuario apache:

sudo chown -R apache: /var/www/example.com

Crear un archivo de host virtual

Hay algunas formas de configurar un host virtual. Puede agregar todas las directivas de host virtual en un solo archivo o crear un nuevo archivo de configuración para cada directiva de host virtual. En general, debe preferir el segundo enfoque, que es más fácil de mantener.

De forma predeterminada, Apache está configurado para cargar todos los archivos de configuración que terminan .confen el /etc/httpd/conf.d/directorio.

Para crear un servidor virtual para un sitio web específico, abra el editor de su elección y cree el siguiente archivo de configuración básico del servidor virtual:

/etc/httpd/conf.d/ejemplo.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/public_html

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

    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
  • ServerName: Nombre del dominio para el que se utilizará la configuración del host virtual. Este es su nombre de dominio.
  • ServerAlias: todos los demás dominios para los que también se utilizará la configuración de host virtual, como el wwwsubdominio.
  • DocumentRoot: el directorio desde el que Apache sirve los archivos de dominio.
  • OptionsEsta directiva controla las características del servidor por directorio.
    • -Indexes: Evita las listas de directorios.
    • FollowSymLinks: Esta opción le dice al servidor web que siga los enlaces simbólicos.
  • AllowOverride: especifica qué directivas declaradas en el .htaccessarchivo pueden invalidar las directivas de configuración.
  • ErrorLogCustomLog: La ubicación de los archivos de registro.

Edite el archivo según sus necesidades y guárdelo.

El nombre del archivo de configuración debe terminar con .confPuede nombrar el archivo de configuración como desee. La mejor práctica es utilizar el nombre de dominio como el nombre del archivo de configuración del host virtual.

Pruebe la sintaxis del archivo de configuración con:

sudo apachectl configtest

Si no hay errores, la salida debería verse así:

Syntax OK

Para activar un host virtual recién creado, reinicie el servicio Apache con:

sudo systemctl restart httpd

Abra http://example.compara verificar que todo funciona como se esperaba.

Conclusión

En este tutorial, le mostramos cómo crear una configuración de host virtual de Apache en CentOS 8. Puede repetir los pasos que describimos anteriormente y crear hosts virtuales adicionales para todos sus dominios.

Si desea proteger su sitio web con un certificado SSL, puede generar e instalar un certificado Letsencrypt SSL gratuito .

Siéntase libre de dejar un comentario si tiene alguna pregunta.