servidor web multidominio

Cómo tener varios dominios en un servidor web

Hace tiempo ya vimos en un artículo de éste mismo blog cómo instalar un servidor web en la Raspberry Pi bajo el sistema operativo Raspbian. Hoy vamos a ver cómo puedes tener varios dominios en un mismo servidor. Puedes obtener hasta 5 dominios gratuitos en duckdns.org.

Lo primero será irte a la carpeta donde se aloja el contenido del servidor web (/var/www/html) y crear una carpeta por cada dominio. Vamos a suponer que vas a tener alojados los dominios dominio1.com, dominio2.com y dominio3.com. Para ello tendrás que escribir los siguientes comandos en la terminal:

cd /var/www/html
sudo mkdir dominio1.com
sudo mkdir dominio2.com
sudo mkdir dominio3.com

Recuerda cambiar dominio#.com por el nombre de los dominios que vayas a tener. Puedes tener tantos como quieras.

Lo siguiente es configurar el propietario de esas carpetas y sus archivos así como los permisos. Lo puedes hacer con las siguientes instrucciones:

sudo chown -R www-data:www-data dominio1.com
sudo chown -R www-data:www-data dominio2.com
sudo chown -R www-data:www-data dominio3.com

sudo find dominio1.com -type d -print -exec chmod 775 {} \;
sudo find dominio2.com -type d -print -exec chmod 775 {} \;
sudo find dominio3.com -type d -print -exec chmod 775 {} \;

sudo find dominio1.com -type f -print -exec chmod 644 {} \;
sudo find dominio2.com -type f -print -exec chmod 644 {} \;
sudo find dominio3.com -type f -print -exec chmod 644 {} \;

Ahora tienes que copiar el archivo 000-default.conf con la siguiente instrucción:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/dominio1.com.conf

Y editar ese archivo que hemos copiado con:

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

Añade en dicho archivo el siguiente contenido modificando lo que consideres oportuno:

<VirtualHost *:80>
     ServerAdmin administrador@dominio1.com
     ServerName dominio1.com
     ServerAlias www.dominio1.com
     DocumentRoot /var/www/html/dominio1.com
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Realiza la misma acción (copiar el archivo 000-default.conf y modificar el contenido) por cada dominio que vayas a tener alojado.

Ahora tienes que activar los dominios y desactivar el default con:

sudo a2ensite dominio1.com
sudo a2ensite dominio2.com
sudo a2ensite dominio3.com
sudo a2dissite 000-default.conf

Ahora ya solo te queda reiniciar el servicio con:

sudo systemctl reload apache2

Si has seguido todos los pasos ya tendrás varios dominios alojados en un mismo servidor web. Cuando el servidor web reciba una petición sabrá a que carpeta tiene que ir a buscar el archivo en función de la URL que se haya solicitado en el cliente.

4 comentarios en “Cómo tener varios dominios en un servidor web

  1. korpetit

    En este caso habría que poner en el equipo con el servidor web, tantas líneas en el archivo duckdns.sh como dominios tubieramos? o cada dominio duckdns en un archivo diferente y llamarlos desde cron?

    Responder
    1. AlexPro Autor

      Hola korpetit.

      Puedes poner en el archivo duckdns.sh todos los dominios separados por comas y sin espacios.
      Lo acabo de probar y funciona.

      Quedaría algo así:

      echo url="https://www.duckdns.org/update?domains=dominio1,dominio2,dominio3&token=c55o998-3p79-9zpb-y384-d9hbe46i4lp3&ip=" | curl -k -o ~/bin/duck.log -K -

      Responder
  2. korpetit

    En el caso de querer ssl con certbot habría algún problema con tanto dominio? creo que los arxhivos de configuración de ssl podrían sobreescribirse y andar mal, no?

    Responder
    1. AlexPro Autor

      No hay ningún problema. Yo ahora mismo sólo tengo un dominio configurado y no te puedo decir, pero ha tenido épocas de tener hasta 4 y todos con su certificado SSL creado con certbot y no daba ningún problema. Supongo que se crean en carpetas diferentes y no se sobreescriben. O eso o se crea un solo certificado válido para todos los dominios, porque recuerdo que en el certificado aparecía el nombre de todos los dominios.

      Saludos y gracias por pasarte por aquí y comentar.

      Responder

Deja una respuesta

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