Cuando hablamos de servidores web usualmente solemos pensar en Apache o Nginx, sin embargo otro «grande» que tiene millones de usuarios es IIS, el servidor web de Microsoft.
Luego de hablar sobre el servidor Apache y el servidor Nginx, hoy toca el turno a IIS, donde exploraremos qué es, para qué sirve, requisitos mínimos, características e instalación.
Contenido
¿Qué es IIS?
Son las iniciales de Internet Information Services y si bien es más conocido como servidor web en realidad son un conjuntos de servicios que transforman un sistema Microsoft Windows en un servidor capaz de ofrecer servicios Web, FTP y SMTP entre otros.
En el caso de SMTP no está pensado como un servidor de correo completo sino simplemente como herramienta a disposición de las aplicaciones web alojadas para que puedan enviar correos electrónicos diferentes destinatarios pero no recibir correo de otros proveedores ya que no incorpora los protocolos IMAP/ṔOP.
Inicialmente lanzado como un grupo de servicios orientado a internet para Windows NT 3.51 en 1995, recién al año siguiente vio la luz Active Server Pages (ASP) para Windows NT 4.0 con IIS 3.0,
Por muchos años IIS fue un CD-ROM separado del Sistema Operativo denominado Option Pack, recién con Windows 2000 se incorporó al instalador del sistema como un paquete más instalable variando las limitaciones dependiendo de la versión de Windows.
Desde 2016 es un servidor que a venido en crecimiento, las estadísticas de Netcraft lo ubican como el servidor más utilizado como servidor web con cerca de 688 millones de instalaciones seguidos por Nginx con 358 millones y Apache con 313 millones.
Sin embargo a la hora de ver la cuota total de sitios web activos en internet los números cambian y tanto Apache como Nginx superan a IIS como servidor en sitios web más activos donde cae al 10% de los sitios.
Es apto tanto como servidor web en Internet y en Intranet, siendo en Intranet o en servidores privados donde tiene mayor cuota debido al mercado empresarial que lo utilizan para aplicaciones internas en empresas de mediana y gran escala ya que va de la mano de Visual Studio .NET muy arraigado en el sector privado empresarial.
¿Cómo maneja las peticiones el servidor IIS?
A diferencia de Apache y Nginx que dividen la carga de trabajo en diversos subprocesos, dependiendo de la configuración incluso un subprocesos por cada request, IIS opta por el modelo de proceso único, es decir que un solo proceso maneja todas las peticiones.
También cabe decir que para determinadas operaciones especiales se delegan a subprocesos, es decir que el proceso principal hace uso de subproceso sin embargo sólo delega un parte de la responsabilidad porque es siempre el proceso principal quien recibe y responde la petición.
Una de las ventajas más importantes de IIS es el manejo de las peticiones y como estas puedes ser atendidas de manera concurrente sobre todo por la alta necesidad que tiene las aplicaciones de realizar peticiones al servidor para enviar y recibir datos, así mismo como importantes mejoras en la entrada y salida asíncrona de datos que permiten aumentar la performance de la aplicación.
Requisitos mínimos de IIS
Los requisitos de hardware mínimos son relativamente bajos, sin embargo hay que entender que estos requisitos son para instalar e iniciar los servicios únicamente, a la hora de utilizarlo en un servidor en producción la potencia del procesador y la cantidad de memoria depende de la cantidad de tráfico, de la cantidad de usuarios y la carga de trabajo que se espera.
Para la versión de Windows Server 2016 en cuestión del procesador el requisito mínimo es un CPU de 1,4 Ghz, algo que cumple la mayoría de los CPU modernos, luego el rendimiento aumenta al aumentar la cantidad de MHz y núcleos de CPU.
Mínimo:
- Procesador de 64 bits a 1,4 GHz
- Compatible con el conjunto de instrucciones x64
- Admite DEP y NX
- Admite CMPXCHG16b, LAHF/SAHF y PrefetchW
- Admite la traducción de direcciones de segundo nivel (EPT o NPT)
En lo referido a memoria si el servidor es instalado sin escritorio, es decir solo consola, la cantidad de memoria mínima requerida son 512MB mientras que con el escritorio el mínimo sube a 2GB minimo, obviamente para un servidor que soporte clientes la cantidad de memoria debe ser incrementada de acuerdo al tráfico, peticiones, usuarios y carga de trabajo esperadas.
Mínimo:
- 512 MB (2 GB para la opción de instalación Servidor con Experiencia de escritorio)
- Tipo ECC (código de corrección de errores) o tecnología similar.
Características del Servidor Internet Information Services
La arquitectura de IIS es modular para permitir una gestión ordenada y la posibilidad de agregar funciones adicionales, brinda soporte para los varios protocolos: HTTP/HTTPS, FTP/FTPS, SMTP y NNTP, prove soporte SSL para Socket Layer, adicionalmente provee múltiples alternativas de autentificación como Kerberos entre otros.
Nativamente el leguage dinamico soportado es ASP.NET sin embargo tambien es posible configurar para utilizar PHP, VBScript, Perl e incluso Java (Java Server Pages y Servlets) y prácticamente cualquier lenguaje como módulo adicional o a través de la interface CGI
Además de los módulos para soportar lenguajes de programación y scripting IIS está formado por otros módulos como pueden ser:
- Módulos de Seguridad: se utilizan para agregar capas de seguridad a las peticiones y proteger los datos, un ejemplo claro son los métodos de autentificación que luego pueden ser implementados en las aplicaciones para la validación de usuarios y sesiones.
- Módulos de Contenido: se utilizan para la generación y envío de de contenido al usuarios, como pueden ser archivos estáticos o dinámico generados por aplicaciones .NET, PHP, PERL o CGI.
- Módulos de Compresión: son módulos que permiten la compresión de contenido, existe dos módulos, uno para contenido dinámico y otro para contenido estático.
- Módulos de almacenamiento cache: brinda soporte para cache de datos en memoria con el fin de mejorar el rendimiento de las aplicaciones reduciendo el tiempo y la latencia en tiempo de respuesta sobre todo en aplicaciones de alto tráfico.
- Módulos de registro y diagnóstico: es un módulo que provee diferentes herramientas como por ejemplo de registro, que permite registro de actividad web como las peticiones, a su vez también provee un monitor de solicitudes para supervisar el funcionamiento del servidor web y de las aplicaciones .
Versiones de IIS
Veamos ahora las diferentes versiones de IIS que han existido:
- 1.0: Windows NT 3.51 SP3
- 2.0: Windows NT 4.0
- 3.0: Windows NT 4.0 SP 3
- 4.0: Windows NT 4.0 como Option Pack en un CD independiente
- 5.0: Windows 2000
- 5.1: Windows XP Professional
- 6.0: Windows Server 2003 y Windows XP Professional x64 Edition
- 7.0: Windows Vista (Solo Business y Ultimate) y Windows Server 2008
- 7.5: Windows 7 y Windows Server 2008 R2
- 8.0: Windows 8 y Windows Server 2012
- 8.5: Windows 8.1 y Windows Server 2012 R2
- 10.0: Windows 10 y Windows Server 2016
Instalación de Servidor IIS
Para instalar Internet Information Server en Windows Server se debe primero abrir el panel de Administración del Servidor y hacer clic en Agregar roles y características tal como aparece en la imagen:
En la siguiente lista se selecciona Servidor Web (IIS):
En el siguiente menú se debe seleccionar los diferentes módulos y opciones a instalar en ISS:
Por último solicita confirmar la instalación para lo que se debe pulsar en Instalar
La instalación podría durar varios minutos dependiendo de la velocidad del servidor y de la cantidad de opciones que se hayan seleccionado
Instalación de PHP en IIS
A su vez también es posible instalar Web Platform Installer que proporciona un menu de instalacion de diferentes paquetes entre muchas otras es posible instalar diferentes versión de PHP de forma sencilla ya automatica y poder procesar.
Para ello luego de descargado el instalador, se procede a instalarlo y desde el menú de Inicio de Windows se busca Web Platform y desde la pestaña de Aplicaciones se busca PHP, allí aparecen diferentes versiones de PHP disponibles, luego pulsa en el botón Agregar.
Conclusión
Internet Information Server es uno de los servidores web más antiguos del mercado con un fuerte arraigo en el mercado empresarial, de los mas sencillos de instalar y configurar ya que permite hacerlo todo desde un amigable entorno gráfico ya familiar como es el de Windows.
En el artículo vimos solo una instalación básica sin embargo Internet Information Server ofrece mucho más, sobre todo cuando se desarrollan aplicaciones .NET con Visual Studio las posibilidades se multiplican, existen infinidad de módulos para expandir las funcionalidades del servidor.
Si Apache o Nginx no son lo tuyo, y estás en un ambiente de Windows Server, sin duda alguna que IIS será la elección acertada.