[TUTORIAL] Internet Information Services | Configuración de IIS 7.5 para alojar múltiples Sitios Web – Parte 2/3

IIS es el rol de servidor de Microsoft que permite alojar Aplicaciones y Sitios Web. Normalmente instalamos este rol cuando utilizamos Sharepoint, servicios de Certificados de Active Directory u otros componentes que requieren de él. Sin embargo, también podemos instalar dicho rol para alojar la web institucional de nuestra empresa.

En algunos escenarios, requerimos configurar varios sitios web, y contamos con solo pocoas direcciones IPs. ¿Cómo configurar en forma segura varios sitios web a la vez en el mismo servidor y con una sola IP disponible pública? Este tutorial intenta explicar, paso a paso, como lograr una configuración standard de un servidor IIS 7.5 con capacidades multi-site, permitiendo subir contenido a cada sitio mediante protocolo FTP.

Este tutorial forma parte de tres entregas. En esta segunda parte vamos a realizar toda la configuración de los Sitios Web y pruebas sin Firewall. Para mayor información sobre la introducción y otras partes, remitirse al final del documento.

 

[toc]

 

Introducción

Esta es la parte 2/3 de la publicación de este tutorial. Para acceder a las otras partes, por favor revise las Publicaciones Relacionadas al final de la página.

 

Objetivo del Tutorial

Como recordatorio, el objetivo de esta publicación es demostrar cómo Internet Information Services (IIS) puede brindar un soporte robusto para alojar múltipiles sitios web en modo “Shared Hosting”, brindando protección aislada para cada tenant y acceso para publicación por FTP.

 

Alcance

Los detalles del alcance están en la parte 1/3 de este tutorial. Para recordar detalles del Escenario de Trabajo, Fuera de Alcance y otros detalles, remitirse a dicha parte al final de la publicación, en “Publicaciones Relacionadas”.

 

Objetivo Técnico

El objetivo técnico de esta publicación es poder realizar la instalación del rol IIS 7.5 y la configuración de varios sitios web utilizando las posibilidades “multi-site” de este rol en Windows Server 2008 R2, de modo tal que:

  • Se puedan alojar varios sitios web por el protocolo HTTP simultáneamente.
  • Se pueda usar una sola dirección IP pública (privada para fines de laboratorio).

 

Como resultado, tendremos una implementación básica de IIS 7.5 y la posibilidad de alojar diferentes sitios web (que pueden ser clientes) bajo el mismo puerto y dirección IP.

 

Plan de Trabajo

El plan de trabajo para la segunda parte es el siguiente:

  • Preparación del Servidor.
  • Instalación de Feature IIS 7.5 Server de Windows Server 2008 R2.
  • Configuración de Carpetas de Publicación.
  • Configuración de Cuentas de Servicio.
  • Configuración de Sitios Web.
  • Configuración de DNS Interno para Pruebas.
  • Prueba de Acceso a Sitios Web sin Firewall.
  • Configuración de publicación FTP.
  • Prueba de Acceso a FTP sin Firewall.
  • Configuración de Firewall de Windows.
  • Prueba de Acceso a Sitios Web y FTP con Firewall.

 

En esta segunda parte, se desarrollarán los primeros puntos desde “Configuración de Sitios Web” hasta “Prueba de Acceso a Sitios Web sin Firewall”. El resto de las entregas se encuentran en “Publicaciones Relacionadas” al final de la página.

 

Desarrollo de la parte 2/3 del Tutorial

La primera parte del tutorial puede encontrarse al final de esta página, en el apartado “Publicaciones relacionadas”.

 

Configuración de Sitios Web

Ya hemos configurado las carpetas de publicación, hemos creado los usuarios de servicio y hemos dado los permisos necesarios a nivel archivos de Windows. Llegó el momento de configurar nuestros sitios web. Al finalizar este paso, tendremos creados nuestros 5 sitios web con las configuraciones básicas realizadas.

 

Eliminación de Default Web Site

Para ello, vamos a abrir la consola “Internet Information Services (IIS) Manager”:

 

Apertura de consola de administración de IIS 7.5.
Apertura de consola de administración de IIS 7.5.

 

La consola lucirá de la siguiente manera:

 

Consola de Administración IIS 7.5.
Consola de Administración IIS 7.5.

 

Nótese que tenemos, por defecto, un sitio web llamado “Default Web Site”. Como nuestro servidor no tiene otro software instalado ni se usa para otra cosa, lo primero que vamos (y debemos) a hacer es eliminar este sitio web. Sin dudarlo, le damos botón derecho y “Remove”:

 

Remove a Default Web Site.
Remove a Default Web Site.

 

Creación de Sitios Web

Llegó el momento de crear nuestros sitios web (5 en total). El proceso de creación es muy simple. Vamos a comenzar por sitio1.com.

Primero, nos paramos sobre el nodo “Sites” y elegimos la opción “Add Web Site…”:

 

Add Web Site en IIS 7.5.
Add Web Site en IIS 7.5.

 

Aparecerá un cuadro en el que debemos llenar los datos del sitio web:

 

Creación de Sitio Web en IIS 7.5.
Creación de Sitio Web en IIS 7.5.

 

Nótese que llenamos los siguientes datos:

  • Site name: sitio1.com
  • Application Pool: se ha llenado solo con el nombre de nuestro sitio.
  • Physical path: ruta hacia la carpeta wwwroot de sitio1.com en el disco “E”.
  • Binding: dejamos el binding http con el puerto 80.
  • Host name: www.sitio1.com (si tiene más, luego lo podemos agregar).

 

Una vez completados estos datos, le damos clic en “Ok” y nuestro sitio quedará creado:

 

sitio1.com creado en IIS 7.5.
sitio1.com creado en IIS 7.5.

 

Haremos lo mismo con el resto de los sitios, cuidando que:

  • El nombre sea el correcto.
  • El physical path sea el correcto.
  • El host name sea el correcto, agregando el “www.”.

 

El producto final es el siguiente:

 

Creación de los 5 sitios en IIS 7.5.
Creación de los 5 sitios en IIS 7.5.

 

Nótese que:

  • Todos los sitios están escuchando por el puerto 80 HTTP.
  • El campo “host name” determinará por qué URL van a escuchar, para que cuando uno pida por www.sitio1.com sea este sitio el que responda, y no otro, utilizando la única IP que configuramos al servidor.
  • Cada sitio tiene como carpeta “physical path” su propia carpeta wwwroot.

 

Configuración de Application Pool

Existe un componente en cada sitio web que es el “Application Pool”. Este componente es el que controla varios aspectos de la aplicación, el que le da vida. Estos aspectos son:

  • Memoria.
  • Errores.
  • Versión del Framework .Net.
  • Compatibilidad.
  • Etc.

 

Como vimos en el proceso de creación de los sitios web, cada uno de ellos tenía un “Application Pool” que se iba creando con el tipeo del nombre. El conjunto de Application Pools los podemos ver desde la consola IIS, apartado “Application Pools”:

 

Application Pools creados.
Application Pools creados.

 

Para cada uno de los application pools, debemos configurar un usuario de servicio. Y ¿adivinen qué? El usuario de servicio será el que creamos unos pasos atrás!

Para configurar cada usuario de servicio en el Application Pool, vamos a ir a las opciones avanzadas del Application Pool que querramos configurar. Comencemos con el sitio1.com:

 

Advanced Settings del Application Pool.
Advanced Settings del Application Pool.

 

En las propiedades avanzadas del Application Pool veremos la opción “Identity”:

 

Configuración de Identity para el Application Pool de un sitio web.
Configuración de Identity para el Application Pool de un sitio web.

 

Si hacemos clic en los puntos suspensivos del nombre Identity (en este caso “ApplicationPoolIdentity”) vamos a obtener otro cuadro:

 

Configuración de Identity para el Application Pool.
Configuración de Identity para el Application Pool.

 

Si seleccionamos “Custom account” vamos a poder hacer clic en el botón “Set…”:

 

Datos de usuario para Application Pool Custom.
Datos de usuario para Application Pool Custom.

 

Allí ingresaremos los datos del usuario de servicio correspondiente al sitio web que estamos configurando (en este caso, iis_sitio1.com). Ingresamos la contraseña y le damos Ok tres veces hasta cerrar el cuadro de las propiedades avanzadas del Application Pool.

Nótese como el campo “Identity” de la lista ha cambiado a la que le configuramos:

 

Identity modificado para el Application Pool del sitio1.com.
Identity modificado para el Application Pool del sitio1.com.

 

Lo mismo debemos hacer con el resto de los Application Pool de nuestros sitios web, y configurar para cada uno su usuario de servicio. Quedaría de la siguiente forma:

 

Usuarios de los Application Pools configurados en IIS 7.5.
Usuarios de los Application Pools configurados en IIS 7.5.

 

Configuración de Usuario Anónimo de Navegación

Además de configurar el usuario para el Application Pool, el sitio web / aplicación web debe tener configurado un usuario a través del cual el IIS intentará leer los directorios. Por supuesto, este usuario será el mismo que la cuenta de servicio asignada al Application Pool y a los permisos de los directorios de Windows configurados anteriormente.

Para realizar esta configuración, debemos ir sitio por sitio y realizar lo siguiente comenzando por el sitio1.com:

Vamos a la consola IIS y seleccionamos el sitio en cuestión y dentro de las propiedades IIS elegiremos “Authentication”:

 

Autenticación en Sitio Web de IIS 7.5.
Autenticación en Sitio Web de IIS 7.5.

 

Veremos las posibilidades de autenticación. En nuestro caso, no queremos que al usuario de internet le pregunte un usuario y password al visitarlo, por lo cual dejaremos el “Anonymous Access” habilitado. Ahora bien, este Acceso Anónimo debe ser a través del usuario de servicio correspondiente al sitio web que estamos configurando. Por ello iremos dentro de la consola, y manteniendo seleccionado la autenticación anónima, a “Edit”:

 

Autenticación en Sitio Web de IIS 7.5.
Autenticación en Sitio Web de IIS 7.5.

 

Una vez hecho esto, debemos ingresar las credenciales de servicio correspondientes. En la ventana que se abrió elegimos “Set…”:

 

Autenticación en Sitio Web de IIS 7.5.
Autenticación en Sitio Web de IIS 7.5.

 

Allí ingresaremos las credenciales del usuario “iis_sitio1.com”:

 

Autenticación en Sitio Web de IIS 7.5.
Autenticación en Sitio Web de IIS 7.5.

 

Lo mismo debemos hacer con los restantes sitios web, asegurándonos que el usuario de navegación en la solapa “Authentication”, “Anonymous Authentication” sea el correspondiente al usuario de servicio configurado para la carpeta de Windows donde se publica el sitio web y el del application pool.

 

Configuración de Logs

Un aspecto importante que no debemos dejar de considerar es donde se guardarán los logs de cada uno de nuestros sitios web. Es por esto que, en el momento de crear el árbol de directorios, hemos creado dentro de cada sitio web una carpeta llamada “logs”. Esta carpeta será la que utilizaremos ahora en nuestra configuración.

Dentro de las propiedades del sitio “sitio1.com” buscaremos una opción llamada “Logging”:

 

Logs en IIS 7.5.
Logs en IIS 7.5.

 

Allí veremos que se nos muestra donde se guardan los logs y con que frecuencia:

 

Logs en IIS 7.5.
Logs en IIS 7.5.

 

Dejaremos la frecuencia en forma diaria, pero cambiaremos el “Directory” para guardar los logs del sitio “sitio1.com” en la carpeta que creamos para tal fin, dentro del usuario “Juan” y dentro del “sitio1.com” como vemos en la siguiente figura:

 

Logs en IIS 7.5.
Logs en IIS 7.5.

 

Modificaremos el Directorio y nos quedará de la siguiente manera:

 

Logs en IIS 7.5.
Logs en IIS 7.5.

 

Lo mismo debemos hacer con el resto de los sitios web, procurando que cada uno de ellos guarde el log dentro de la carpeta correspondiente creada para tal fin.

 

Ingreso de contenido por defecto para cada sitio

Para poder realizar las pruebas correspondientes, debemos ingresar algún contenido a los sitios web y de esta forma poder identificar si se abren bien o no. Si no lo hacemos, aparecerá un error en los sitios web, dado que no tiene nada que mostrar de contenido.

En la vida real, el contenido es el propio del sitio web: es un trabajo en conjunto de desarrolladores y diseñadores. Sin embargo, para este tutorial, vamos a crear un contenido simple que sea el nombre del sitio web que estamos abriendo.

Para esto, crearemos un archivo de texto con el nombre “index.txt” y dentro del mismo el nombre del sitio. Por ejemplo, para el sitio1.com el archivo contendrá el siguiente contenido:

 

Archivo de contenido para IIS 7.5.
Archivo de contenido para IIS 7.5.

 

El archivo lo ubicaremos dentro del directorio wwwroot correspondiente al sitio1.com:

 

Archivo de contenido para IIS 7.5.
Archivo de contenido para IIS 7.5.

 

Y por último reemplazaremos la extensión “txt” por “html”:

 

Archivo de contenido para IIS 7.5.
Archivo de contenido para IIS 7.5.

 

De esta forma, tenemos un archivo en formato HTML que el servidor IIS podrá leer sin problemas. El nombre “index.html” corresponde a un archivo por defecto que el servidor IIS puede leer y que irá a buscar. Esto puede ser cambiado en la configuración de cada sitio IIS.

Lo mismo haremos para cada uno de los restantes sitios web: configuraremos un archivo index.html con el nombre del sitio, de modo tal que sea fácilmente indentificable.

 

Configuración de DNS Interno para Pruebas

Como hemos comentado antes, vamos a utilizar dominios públicos que, por supuesto, no tenemos publicados hacia internet y tampoco somos los dueños de los mismos. Estos dominios son los que hemos configurado anteriormente en los sitios web:

 

Para poder realizar todas las futuras pruebas, vamos a crear las zonas para cada uno de estos dominios en un DNS interno, y para cada una de estas zonas crearemos un registro “A” hacia la dirección IP interna de nuestro servidor, es decir: 192.168.1.235.

 

Prueba de Acceso a los Sitios Web sin Firewall

Desde nuestro servidor IIS01, el cual tiene como servidores DNS a nuestro equipo con las zonas creadas de los dominios de prueba, abriremos la consola IIS y nos pararemos sobre el sitio “sitio1.com” y elegiremos la opción del panel derecho “Browse www.sitio1.com…”:

 

Browse de Sitio Web en IIS 7.5.
Browse de Sitio Web en IIS 7.5.

 

Como resultado, veremos que el navegador predeterminado se abrirá e ingresará a la dirección http://www.sitio1.com mostrando nuestro sitio web:

 

Sitio Web de Prueba en IIS 7.5.
Sitio Web de Prueba en IIS 7.5.

 

Lo mismo podremos hacer con los restantes sitios web, comprobando que están funcionando. Si en algún sitio hubiésemos olvidado ingresar el usuario para “Anonymous Authentication”, o si no hubiésemos seteado los permisos NTFS correctamente, el error que aparecería sería:

 

Error en IIS 7.5 al no ingresar el usuario para Anonymous Authentication.
Error en IIS 7.5 al no ingresar el usuario para Anonymous Authentication.

 

Desde la máquina DESKTOP01, la cual tiene como servidores DNS a nuestro equipo que tiene las zonas DNS creadas para cada uno de nuestros dominios, abriremos un navegador web e ingresaremos la dirección http://www.sitio1.com, comprobando que abre:

 

Prueba de apertura de sitio web en IIS 7.5 desde un equipo cliente.
Prueba de apertura de sitio web en IIS 7.5 desde un equipo cliente.

 

De esta forma, hemos comprobado que nuestra configuración realizada permite:

 

  • Que en un mismo servidor IIS, y con una única dirección IP, podamos abrir varios sitios web gracias a la configuración de los Bindings.
  • Que el contenido y el acceso al mismo está segurizado por la asignación de usuarios y permisos únicos a cada sitio web.

 

Conclusiones

Ya hemos pasado la primera y segunda parte del tutorial. Hasta aquí hemos realizado la preparación del servidor, de los directorios de publicación y de las cuentas de servicio y, además, configuramos nuestros sitios web y hasta realizamos pruebas de acceso. En la entrega 3 de este tutorial seguiremos con la configuración de FTP para poder publicar contenido remotamente y sin necesidad de intervención de un administrador.

 

Acerca del Autor

0 0 votes
Article Rating

Professor. Techie. Ice cream fan (dulce de leche). My favorite phrase: "Todos los días pueden no ser buenos ... pero hay algo bueno en todos los días". Currently I´m Engineering Manager at MODO (https://modo.com.ar), the payment solution that allows you to connect your money and your world to simplify everyday life. Modo is a payment solution in which you can send, order and pay from your mobile device in the safest, most practical and convenient way. I enjoy a lot of educational, technological talks and a good beer. If you want to talk, write me to pablodiloreto@hotmail.com.

Subscribe
Notify of
guest

8 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Eissenhawer
Eissenhawer
October 30, 2013 10:49 AM

Me podrias ayudar con la instalacion DNS, para los sitios, es que soy novato y no tengo ni idea, muy buen tutorial.

Daniel
Daniel
Reply to  Eissenhawer
July 23, 2019 11:43 PM

Me pasa lo mismo porque en Administrative Tools no tengo lo que todos suponen que debería tener 🙁

Salva
Salva
November 26, 2013 11:44 PM

Interesante tutorial, pero no pude coronarlo con exito porque mi servidor IIS está en un dominio, y parece que el ambiente de este tutorial es en Grupo de trabajo. Al registrar el sitio web en el DNS, este automatcamente le agrega las etiquetas del dominio original, es decir que el FQDN es:
http://www.sitio1.com.dominio.dominio, y el Servidor DNS le hace una carpeta “com” y dentro una subcarpeta “sitio1” con un registro “www”. Hay alguna forma de registrar estos sitios en un IIS de dominio ?

Carlos Ucañan
Carlos Ucañan
August 26, 2014 11:45 AM

Estimado Muy buen material
Se agradece el trabajo realizado.

Quisiera hacerte la consulta: tengo una red de dominio abc.com.pe. Ahi voy a implementar un servidor web con IIS 7.5 el cual manejará sitios para el dominio def.com (sitio1.def.com, sitio2.def.com, etc), el cual tengo asignado a una IP pública y que apunta a la IP privada del mencionado servidor.

En este caso, cómo se puede hacer para publicar subdominios.

De antemano las gracias por tu soporte

fernando piñeros
August 28, 2014 2:40 PM

Hola tengo una consulta, como podria proteger mi IP publica , ya que cuando se redirreciona,al domino aparace mi ip Publica, quedo atento gracias

Daniel_ Obregón
Daniel_ Obregón
September 5, 2014 3:08 PM

Hola Pablo, disculpa he seguido tus pasos en el tutorial que publicaste, me manda el error de que no carga la página web, dice que es por que no se configuro bien los permisos de NFTS, pero así como mencionas he realizaso la configuración y me manda este error, que debería checar, para que no me pase esto.

Diego
Diego
September 22, 2014 9:05 AM

Felicidades por el artículo,

¿Dónde debo crear el usuario iis_sitio1.com?

Gracias

Ignacio Aguilera
Ignacio Aguilera
May 14, 2015 1:58 PM

¿¡Como estas Pablito!?. Buscando información acerca del IIS, me encontre con este POST, la verdad esta gráficamente bien explicado y fue de gran utilidad, te felicito por el Site. Espero que andes bien.

Ignacio Aguilera.

Saludos!