EL SERVIDOR WEB DE WINDOWS SERVER 2008

Este texto es una breve introducción al IIS de Windows Server 2008. Para conocer más en profundidad IIS se puede consultar el libro "Internet Information Services (IIS) 7.0" de Microsoft Press, así como en el temario MCTS (en concreto, el examen 70-643, Windows Server 2008 Applications Insfrastructure Configuration). También se encontrará información abundante en la página de Microsoft.

Windows Server 2008 introduce IIS 7.0, el servidor web de Windows. IIS está orientado a las aplicaciones web, que vienen a ser un conjunto de ficheros que ofrecen cierto contenido. Dependiendo del tipo de aplicación web hará falta instalar unos u otros módulos, aunque las tareas que nosotros haremos serán tan básicas como crear un sitio web y administrarlo.

Por último, y antes de empezar, comento que la configuración de IIS 7.0 se almacena ahora en ficheros XML. Puede para ello examinarse el archivo C:\Windows\System32\inetsrv\MetaBase.xml.

INSTALAR IIS 7.0

Instalar IIS 7.0 es añadir la función con el nombre "Servidor web (IIS)". Durante la instalación, se indican características requeridas; aceptarlas.

En el diálogo "seleccionar servicios de función", elegir cualquier servicio de función adicional que se requiera. Por ejemplo, servicio FTP, si se desea que los diseñadores carguen sus páginas en el servidor via FTP, o ASP.NET si se desea soportar páginas en este lenguaje. Acceptar las características requeridas para cada nuevo servicio de la función. Instalar.

CREAR Y CONFIGURAR SITIOS WEB

Una vez que se ha instalado IIS, el servidor es capaz de servir contenido web a los clientes. De hecho, nada más instalar la función IIS se puede visitar la página por defecto, abriendo un navegador web y escribiendo http://ip-del-servidor.

Sin más configuración, IIS tiene una carpeta donde almacena por defecto las páginas web. Esta carpeta está en "C:\inetpub\wwwroot\". Cualquier fichero html que sea colocado en esta carpeta puede ser visitado desde el exterior. Sin embargo, IIS permite crear varios sitios diferentes, lo que en terminología Apache de toda la vida, se llamaban "virtual host".

Para crear un nuevo sitio web desde el administrador del IIS, hay que ir a Inicio -> Herramientas administrativas -> Administrador de Internet Information Services (IIS).

Una vez allí, seleccionar el nodo sitios, dentro del nodo del servidor. En el panel de acciones, está la opción "Agregar sitio web".

En el siguiente diálogo, hay que proporcionar un nombre para el sitio web, la ruta a donde se almacenará el contenido y la información sobre la IP en la que se atenderán solicitudes (la IP de una de las interfaces del servidor, si es que tiene más de una). También podemos asignar un nombre de host, como por ejemplo "www.misitio.com".

NOTA: Es importante que el servidor IIS tenga acceso al sitio web. Es decir, que el grupo local IIS_IUSRS (empleado por IIS para acceder al sistema), tenga permisos básicos de lectura y ejecución.

Por desgracia, por mucho sitio que creemos, sin nada más que la IP del servidor, solo vamos a acceder al sitio por defecto. Para acceder a los sitios que hemos creado, necesitamos que una DNS resuelva el nombre del sitio, y de este modo el FQDN del sitio vaya en la cabecera del paquete HTTP. En otras palabras, si en el navegador solo ponemos la IP del servidor, en la cabecera HTTP solo irá dicha IP, y cuando IIS reciba la solicitud, con tan pobre información se decantará por el sitio por defecto. Necesitamos utilizar "virtual hosts", que no es más que un método para asociar a una sola IP (la del servidor) varios sitios diferentes.

Para ver las páginas del sitio "www.misitio.local", debe adjuntarse dicho nombre en la cabecera HTTP. O sea, que en el navegador debemos escribir "http://www.misitio.com". Pero... obviamente, el navegador no sabe quién es "ese". Necesita una DNS que resuelva la incógnita. Pero como aun no nos sabemos la teoría sobre DNS, vamos a hacer un truquito. Si estamos en Windows 7, iremos al fichero "C:\Windows\System32\drivers\etc\hosts" y añadiremos en él lo siguiente al final (imagina que el servidor tiene la dirección 172.16.0.3):

172.16.0.3 www.misitio.local

NOTA: Cuando digo "imagina", quiero decir "imagina". Por favor, usad la ip de vuestro servidor...

En cambio si estamos en GNU/Linux, abriremos el fichero "/etc/hosts" y añadiremos al final lo siguiente (imagina que el servidor tiene la dirección 172.16.0.3):

172.16.0.3 www.misitio.local

Ya tenemos un sucedaneo de DNS (ya que el SO busca antes en estos ficheros que hacer una consulta DNS, por cuestiones de eficiencia). ¡OJO! usamos esto como "apaño", pero no es la idea. Lo suyo es tener una buena DNS a mano. Y nada de usar esto para gastar bromas redirigiendo google a quien sabe donde...

Lo único que nos queda, es colocar contenido en el sitio. Podemos crear una página llamada index.html, y añadirle algún contenido del tipo "¡Hola mundo!". Para ver esta página solo hay que escribir en el navegador la dirección "http://www.misitio.local".

SOBRE LOS HOSTS VITUALES

Aunque los hosts vituales (o en terminología de Microsoft, Host headers) son una opción muy viable para almacenar varios sitios web, en ocasiones es preferible no usarlos, si por ejemplo el servidor va a ser dedicado. Un servidor dedicado solo tiene sentido si aloja una aplicación crítica para la continuidad del negocio. Por supuesto, dicho servidor disfrutará de todas las atenciones posibles, ya que sin él, no hay negocio.

DIRECTORIOS VIRTUALES

Los directorios virtuales se encuentran bajo la raíz del sitio. Pueden contener diferentes aplicaciones web, o sencillamente otros contenidos, al igual que los directorios en un disco duro. Si el sitio raíz es "www.misitio.local", un directorio virtual podría ser /informes. Para conectar con el directorio virtual y acceder a su contenido, los usuarios deberían especificar "www.misitio.local/informes".

Los directorios virtuales pueden encontrarse en un disco diferente (incluso en otro servidor, con una carpeta compartida), en vez de en su posición "esperable a priori".

Los directorios virtuales pueden también ser anidados. Por ejemplo, en www.misitio.local/informes/descargas, el directorio /descargas será un directorio virtual anidado bajo el directorio virtual /informes.

Para crear un directorio virtual, hay que seguir los siguientes pasos:

  1. Hacer clic derecho en el sitio web o el directorio virtual bajo el que se creará el nuevo directorio virtual.
  2. Elegir "Crear nuevo directorio virtual".
  3. Indicar el nuevo directorio virtual y su ubicación física.

REDIRECCIÓN

La redicción es usada para enviar a los usuarios desde un sitio a otro. Esto puede resultar muy útil cuando se está llevando a cabo un migración o actualización de software. Si se cambia de sitio o dominio, puede ser una buena idea crear una redirección para que los usuarios no se pierdan o intenten acceder al servidor antiguo.

El primer paso es añadir a la función IIS el módulo de redirección. El procedimiento es el siguiente:

  1. Desde el administrador del servidor, seleccionar "Servidor web (IIS)" bajo Funciones.
  2. En el panel de la derecha, elegir "Agregar servicios de función". Desde aquí elegimos el servicio de función "Redirección HTTP".
  3. Una vez que el módulo de redirección HTTP ha sido instalado, la opción de redirección aparecerá para cada sitio web o directorio virtual. Para acceder a esta opción, abrimos el administrador de IIS, y elegimos el sitio o directorio bajo "Sitios". En el panel central aparecerá la opción "Redirección HTTP".

Dentro de la redirección, hay algunas opciones a tener en cuenta:

  • Redirigir las solicitudes a este destino: Esta la la URL a la que los clientes serán redirigidos. Puede ser otra página, sitio, u otro directorio virtual en el mismo sitio.
  • Redirigir todas las solicitudes al destino exacto (en vez de al destino relativo): Esta opción es seleccionada para redirigir a la URL (literalmente) escrita en la primera caja de texto. Si esta opción está sin marcar, la porción de URL solicitada tras la redirección se yuxtapondrá a la redirección.
    Por ejemplo si el usuario pide http://servidorantiguo.com/libros/informatica/iis.html, y la redirección fue dirigida hacia http://nuevoservidor.com/libros/, si la opción estuviese marcada, podría llevar al usuario http://nuevoservidor.com/libros. En caso de no estar marcada, se llevaría al usuario a http://nuevoservidor.com/libros/informatica/iis.html
  • Redirigir solo las solicitudes de contenido en este directorio (no en los subdirectorios): Esta opción puede ser usada cuando la opción anterior no está activada. Significa que cualquier solicitud de subdirectorios no se redirigirá sino que se quedará en el servidor local.
  • Código de estado: Hay tres opciones que afectan al código de estado que se devuelve al navegador cuando se es redirigido. Estamos hablando a nivel de paquetes HTTP, y se trata de lo que entienden los navegadores cuando reciben la orden de ser redirigidos:
    • Permanente(301): Esta y todas las peticiones futuras deberían ser dirigidas a la URL dada.
    • Encontrado (302): Este es el código de redirección más popular. Supuestamente, el navegador sigue la redirección si la solicitud inicial era un GET, pero en la práctica, los navegadores redirigen ya sea la petición un GET o un POST. Por eso se añadió 307.
    • Temporal (307): Es similar a 302, pero en el caso de respuesta 307, solo sigue la redirección de peticiones GET.

LÍMITES DE LA PÁGINA WEB

Cuando se da servicio de alojamiento para un número de sitios web en un servidor, puede ser ventajoso limitar el número de conexiones que cada sitio debe tener. Esto ayudará a limitar la cantidad de recursos que el sitio puede consumir. Las restricciones que pueden aplicarse son las siguientes:

  • Ancho de banda que un sito puede usar.
  • Número de conexiones concurrentes a un sitio web.
  • Tiempo antes de que una conexión inactiva se elimine del servidor.

La configuración por defecto es no limitar la cantidad de ancho de banda o número de conexiones para un sitio web. Sin embargo, el "tiempo de espera de conexión" es de 120 segundos. Cuando un límite de ancho de banda es superado, no se utilizará ancho de banda adicional hasta que las conexiones dejen de superar el ancho de banda establecido.

Para configurar los límites, hacemos clic en "configurar límites" en el panel derecho del administrador de IIS, cuando tenemos seleccionado el sitio web.

IIS tiene muchas más opciones. Para conocerlas, puede encontrarse información abundante en la página de Micrsoft, así como en el temario MCTS (en concreto, el examen 70-643, Windows Server 2008 Applications Insfrastructure Configuration).

Ejercicio 1. Instala el servicio IIS en un servidor Windows 2008. Accede al sitio por defecto del IIS utilizando la ip del servidor. Crea en el sitio por defecto una página llamada "index.html" y escribe en ella una pequeña página web que incluya el texto "Sitio por defecto de IIS". Comprueba que puedes acceder a la página desde el navegador web de otro ordenador.

CAPTURA: 1. Creando el sitio. 2. Accediendo al sitio por defecto.

Ejercicio 2. Crea un sitio web con un nombre de dominio que escojas. Por ejemplo "www.dominiodeprueba.com". Accede desde el ordenador de un compañero al sitio web que has creado. Puesto que no hemos visto DNS, tendrás que añadir una entrada al archivo hosts como ya vimos anteriormente.

CAPTURA: 1. Accediento al nuevo sitio a través de su url.

Ejercicio 3. Crea un directorio virtual en el directorio "Documentos" del Administrador. Coloca dentro un archivo llamado index.html y escribe en su interior un pequeño código html. Intenta acceder a la página. ¿Tienes algún problema para ver la página? Trata de averiguar lo que ocurre.

CAPTURA: 1. Creando el directorio virtual. 2. Visualizando el nuevo directorio virtual.

Ejercicio 4. Añade una redirección, para que cuando el usuario abra el directorio anterior, acceda en realidad a www.google.com.

CAPTURA: 1. Creando la redirección.

Ejercicio 5. Inserta en el sitio que creaste en el ejercicio 2, una imagen suficientemente grande (más de 50 KB). Abre desde el navegador del ordenador cliente la imagen, escribiendo directamente su url. Modifica los límites de la página, poniéndolos al mínimo y comprueba como se enlentece la carga de la página respecto a la carga original.

CAPTURA: 1. Cambiando los límites de la página.

Saludos.