Vhost: Configurar varios dominios en una instancia EC2 de AWS

Configurar varios dominios en una instancia EC2 de AWS - Vhost

Si no te has pegado nunca con servidores, configurar por primera vez una instancia EC2 de Amazon Web Services no es siempre sencillo. Acostumbrado a la fácil gestión de dominios con mi hosting compartido 1and1 (que tengo desde hace más de 6 años), cuando empecé a migrar proyectos a AWS recuerdo que una de las primeras tareas que eché de menos fue poder configurar varios dominios en la instancia EC2 a través de un panel. Para quien se encuentre en la misma situación, hoy os cuento cómo realizar esta tarea con el fichero vhost.

He partido de la base de que quieres configurar una instancia EC2 de AWS. Sin embargo, lo que voy a contar aplica a cualquier servidor web que utilice Apache, ya que vamos a utilizar los VHosts (Virtual Hosts) de Apache.

Directorio vhosts

En una instancia AWS con Amazon Linux AMI (la imagen de Linux que utilizo para mis proyectos en AWS, que es la opción por defecto), tu sitio web por defecto se aloja en /var/www/html/. Aunque puedes utilizar este directorio para subir el código de tus proyectos, para mantenerlo más ordenado recomiendo crear una estructura de proyectos diferente, en  /var/www/vhosts/.

A continuación, dentro de este directorio es donde creamos los diferentes proyectos web que van a estar alojados en la instancia EC2. Por ejemplo  /var/www/vhosts/www.dirfutbol.es/, para mi proyecto www.dirfutbol.es. Una vez creados los diferentes proyectos en su directorio propio, pasamos a configurar el fichero vhost.

Fichero de configuración vhost

Este fichero se usa para conectar cada uno de nuestros dominios con el directorio donde está alojado su proyecto. Puede que el fichero vhost venga creado por defecto, o puede que no. Exista o no, lo editamos:  sudo vi /etc/httpd/conf.d/vhost.conf. Existiera o no anteriormente, este fichero se cargará de forma automática cada vez que arranquemos el servidor Apache.

En este fichero añadiremos cada uno de los dominios que queramos configurar, así como la ruta donde está alojado el código. Es muy sencillo de configurar, así que bastará con utilizar un ejemplo:

Como veis, cada dominio a configurar tiene que ir dentro de <VirtualHost *:XXX>, donde XXX es el puerto. En mi caso, ambos fragmentos son idénticos con la única excepción de que utilizo el puerto 443 (para https) y el 80 (para http), no obstante, no es necesario que vosotros añadáis ambos puertos si no vais a utilizar conexión https.

El siguiente fragmento a considerar es  ServerName, que es obligatorio y tiene que coincidir con el dominio que estáis configurando, en mi caso www.dirfutbol.es. Además, también podéis utilizar (aunque no es obligatorio si no lo necesitáis) un alias con  ServerAlias. Yo he utilizado dirfutbol.es porque en mi caso quiero que tanto www.dirfutbol.es como dirfutbol.es apunten al mismo lugar.

Sí que es obligatorio especificar un DocumentRoot, que como su nombre indica, es la ruta donde se encuentra el sitio web. En mi caso, como ya comenté anteriormente en el ejemplo, la ruta es  /var/www/vhosts/www.dirfutbol.es. Sin embargo, en el fichero vhost he utilizado  /var/www/vhosts/www.dirfutbol.es/web, añadiendo /web al final. Esto no es necesario hacerlo, yo creé este proyecto con un framework de desarrollo llamado Silex, y es la estructura interna de directorios que se utiliza.

Por último, con la directiva  Directory, especificamos nuevamente la ruta donde se encuentra el proyecto web y configuramos   AllowOverride All, para permitir el correcto funcionamiento del fichero .htaccess.

Reinicio del servidor

Una vez configurado todo, es necesario reiniciar el servidor. La configuración del fichero vhost se carga al arrancar el servidor, por lo que los cambios en ejecución no tienen ningún efecto. Para ello basta con ejecutar  sudo service httpd restart.

Uso de cookies

Este sitio web, como todos, utiliza cookies. Si continúas navegando por la web estás dando tu consentimiento para la aceptación de la política de cookies de este sitio web. ACEPTAR

Aviso de cookies