Saltar la navegación

Hosts virtuales en Apache

Tener todo un servidor Apache para atender solo un sitio web es una pérdida de recursos. Apache es capaz de atender, desde una sola máquina a todo un conjunto de sitios web. Es decir, podemos servir al mismo tiempo peticiones para aula224.mdc.com, aula222.mdc.com, primero.asir.com, segundo.asir.com, etc. Esto se hace utilizando “hosts virtuales”.

Para atender varios sitios web, primero debemos conseguir que las peticiones de los clientes para esas URLs lleguen hasta nuestro servidor. Este es un problema de la configuración del servicio DNS o del fichero /etc/hosts.

Una vez resuelto el problema del DNS, tenemos varias opciones para configurar nuestros hosts virtuales. En primer lugar, podemos establecer varias direcciones IP y asignar una a cada host virtual, a esto lo llamaremos “hosts virtuales por IP”. En segundo lugar, está el método al que llamaremos "hosts virtuales por puertos", en el cual podemos establecer distintos puertos de escucha para cada sitio web, pero este método es poco versátil porque implica decirle al cliente a qué puerto debe dirigirse, pero puede ser útil para redes internas. Y, en tercer lugar, el protocolo HTTP 1.1 permite al cliente web indicarnos, mediante la cabecera que se vio al principio, el nombre del sitio web al que quiere acceder. Como ya apenas quedan navegadores que no soporten el protocolo HTTP 1.1, esta es la opción más utilizada y se denomina "hosts virtuales por nombres".

Es posible hacer una mezcla con los tres tipos de configuración anteriores, pero lo normal, hoy en día, es utilizar el tercero de los métodos.