Tutoriales Varios

Servidores virtuales

El dominio principal o por defecto

En páginas anteriores hemos visto que Apache crea al instalarse la carpeta conf (ruta completa C:Archivos de programaApache GroupApacheconf), dentro de la cual están los archivos de configuración del servidor, archivos que tendremos que modificar para adecuar a nuestro sistema.

El archivo que nos interesa es httpd.conf.

Por defecto Apache se instala para servir un solo dominio. Estas son algunas de las directivas que debes comprobar en http.conf:

  • ServerRoot "C:/Archivos de programa/Apache Group/Apache2" (o …/Apache si usas la version 1.2). Es la carpeta de instalación del server. Sin barra final.
  • Listen 80 El puerto donde Apache ‘escucha’. El puerto 80 es el puerto http por defecto. No lo cambies si no tienes una buena razón para ello.
  • DocumentRoot "C:/Archivos de programa/Apache Group/Apache2/htdocs": la carpeta pública del server. Ahi van los archivos de tu página. Por ejemplo si mueves a htdocs tu página de inicio "index.html", podrás verla tecleando en el navegador localhost/index.html. Verás que esa carpeta está llena de archivos. Puedes borrarlos: son la página de bienvenida que trae Apache y sirven solamente para informarte de que la instalación ha funcionado.
  • <Directory "C:/Archivos de programa/Apache Group/Apache2/htdocs"> Esta directiva establece las reglas que se aplican para servir los documentos almacenados en htdocs. Como en html, es un contenedor. La etiqueta de cierre es </directory

Lo básico a retener de lo anterior es que las páginas que guardes en DocumentRoot (carpeta htdocs) se verán cuando te conectes con ServerName (localhost o el dominio que hayas especificado).

Pero ¿que ocurre si deseas tener varios dominios separados? por ejemplo www.micasa.com y www.mioficina.com ? Si todas las páginas están en la misma carpeta, como sabe Apache que pagina servir bajo que dominio ?

Asumiendo que tengas resuelto el tema de las DNS, es decir, que esos dominios se resuelvan hacia tu IP, puedes utilizar servidores virtuales.

Servidores virtuales con apache

Nada mas fácil que crear servidores virtuales con apache. Vamos a suponer que por ejemplo, has acudido a un servicio como www.dyndns.org y tienes dos subdominios como pepe.dyndns.org y pepita.dyndns.org, ambos apuntando a tu IP. Bien, lo primero que debes considerar es que si creas un solo dominio virtual, la configuración del server por defecto, o dominio principal de la que hablamos hasta ahora no funcionará. Por ello la solución no es tener el dominio por defecto y ademas un server virtual, sino dos servidores virtuales, de los cuales el primero (por orden de aparición) se considerará server por defecto.

Bien, hay dos formas de identificar servidores virtuales en apache. Una es por IP y otra por nombres de dominio. El método mas sencillo y normal es el segundo, y aqui solo nos referiremos a él.

Navega al final de tu archivo http.conf y descomenta esta directiva:

NameVirtualHost *:80.

A continuación escribe una sección como esta:

<VirtualHost *:80>
ServerAdmin micorreo@midireccion.com
ServerName pepe.dyndns.org
DocumentRoot "C:/Archivos de programa/Apache Group/Apache2/htdocs"
</VirtualHost>

Fijate que al abrir la sección escribimos ‘*:80’, exactamente lo mismo que en NameVirtualHost. Esto es importante.
Fíjate también que este es nuestro dominio principal, que es el que tenemos almacenado en htdocs. Vamos ahora al segundo dominio, creamos otra sección parecida:

<VirtualHost *:80>
ServerAdmin mi_otro_correo@mi_otra_direccion.com
ServerName pepita.dyndns.org
DocumentRoot "C:/mis documentos/documentos de pepita"
</VirtualHost>

Suficiente !. Si escribes en tu navegador pepe.dyndns.org veras la pagina guardada en htdocs, y si escribes pepita.dyndns.org verás la página guardada en el DocumentRoot de ese otro server.

Ten en cuenta simplemente que dentro de cada directiva de servidor virtual puedes poner las reglas de visualización que desees, exactamente como lo harías para el dominio por defecto (indexes, indexoptions, etc).