Amigos de la #Uncoma tenian unas dudas respecto a crear host virtuales en apache asi que les recomendé pasarse a nginx (el forro) naaa mentira… La idea de esta entrada es poder Crear VirtualHost en Apache Web Server con la menor complicación posible sobre ubuntu 20.04 que es el servidor que estoy usando para pruebas, pero que seguramente debería ser similar en similares entornos. Así que sin mas rodeos dijo el torero, nos vamos a Crear VirtualHost en Apache Web Server

apache
Virtualhost Sobre Apache

Si están acá es por que ya tienen instalado apache y estan tratando de montar mas de un sitio web en un servidor, ya que justamente crear un virtual host o mas de uno es simplemente para eso. Con Virtual Hosts, puede especificar el origen o 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.

Trabajaremos con una estructura sencilla:

/var/www/
├── dominio1.com
│   └── public_html
├── dominio2.com
│   └── public_html

estas carpetas tienen que tener permisos www-data sino no van a funcionar:

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

En ubuntu los Virtual Host se encuentran en el directorio /etc/apache2/sites-available. Tambien se pueden crear enlaces simbólicos al directorio /etc/apache2/sites-enabled

Vamos a crear el archivo: /etc/apache2/sites-available/dominio1.com.conf

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

y dentro pondremos:

<VirtualHost *:80>
    ServerName dominio1.com
    ServerAlias www.dominio1.com
    ServerAdmin webmaster@dominio1.com
    DocumentRoot /var/www/dominio1.com/public_html/index.html

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

    ErrorLog ${APACHE_LOG_DIR}/dominio1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log combined
</VirtualHost>

Fijense que dentro de la creacion en DocumentRoot apunta a un index.html que estaria bueno lo puedan construir para diferenciar directorios y que funcione, por ejemplo:

sudo nano /var/www/dominio1.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Bienvenidos a Dominio1</title>
  </head>
  <body>
    <h1>Esto funciona siguiendo el tutorial del blog</h1>
  </body>
</html>

y lo mismo con dominio2 cambiando el title porfa!

Para habilitar el nuevo archivo de Virtual Host:

sudo a2ensite dominio1.com

y como indicamos anteriormente creamos un enlace simbólico:

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

Para revisar errores simplemente:

sudo apachectl configtest

Y debe devolver ok. Si esta como lo indique les va a dar ok! Un consejo como siempre es no usar el servidor asi no mas sino poder hacer algo con docker ya que te permite la versatilidad de probar cosas y borrar todo al diablo en minutos.

Ahora reiniciamos y a probar:

sudo systemctl restart apache2
Print Friendly, PDF & Email
Share:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *