IIS , abreviatura de Internet Information Services , y anteriormente conocido como Internet Information Server, es un servidor web de Microsoft que fue diseñado para usarse con productos de Windows, comenzando con la familia NT.
Este servidor web se utiliza para ayudar a los usuarios de Windows a alojar varios tipos de contenido en la web, como archivos multimedia, documentos o incluso sitios web completos. En este momento, Apache es el servidor web de Windows más popular, seguido de cerca por IIS, que es bastante impresionante.
¿Qué es IIS?
IIS es un servidor web con el que es fácil familiarizarse, gracias a su interfaz gráfica de usuario intuitiva (GUI) que le permite administrar sitios web asociados con el servicio y sus usuarios relacionados . La GUI de IIS facilita el diseño, la personalización, la configuración y la publicación de sitios web desde una única ubicación.
Tiene una herramienta de administración de sitios web incorporada llamada IIS Manager que puede usar para ajustar opciones como configuraciones de seguridad, parámetros de rendimiento, preferencias de registro, así como páginas de error o valores predeterminados para los sitios web que administra.
Desde un punto de vista técnico, IIS es bastante versátil, ya que puede servir páginas web estándar y dinámicas por igual, sin un esfuerzo significativo. Por lo tanto, puede usarlo para crear y publicar páginas web HTML, pero es bueno saber que también puede administrar páginas PHP y aplicaciones ASP.NET.
Gracias a su flexibilidad, IIS puede ejecutar scripts y aplicaciones contenidas en páginas web dinámicas y mostrar los resultados en la pantalla del navegador web del visitante. Con los sitios web estáticos, el proceso es aún más fácil: IIS simplemente envía el contenido HTML y las imágenes (si corresponde) al navegador web del visitante.
¿Cuál es el propósito de IIS?
Dado que se beneficia del soporte completo de Microsoft y el hecho de que comprende numerosas funciones avanzadas, IIS es una excelente opción para crear y administrar sitios web comerciales, como tiendas electrónicas o sitios web de portafolios promocionales.
La desventaja es que usar IIS con fines comerciales también significa que necesitará una licencia comercial. Además, el precio de este tipo de licencia varía en función de la cantidad de usuarios que desee incluir.
Así que ya hemos establecido que IIS se puede utilizar para crear y alojar un sitio web, así como el hecho de que admite contenido web estático y dinámico. Sin embargo, IIS es mucho más que eso. Por ejemplo, puede utilizar su soporte de módulo integrado para mejorar la funcionalidad de su servidor.
Es posible instalar módulos de transmisión en su servidor para que los visitantes de su sitio web puedan beneficiarse de la transmisión de contenido multimedia. También puede utilizar un módulo de reescritura de URL que le permite crear poderosas reglas de implementación de URL para que los visitantes puedan recordarlas fácilmente y los motores de búsqueda puedan encontrarlas más rápido.
Por lo tanto, no hace falta decir que si necesita una forma rápida de crear y publicar un sitio web, IIS es una de las mejores formas de hacerlo. La mejor manera sigue siendo Apache HTTP gracias a que es de código abierto y le permite usarlo de forma gratuita, independientemente del número de usuarios.
Historial de versiones de IIS
Vale la pena mencionar que inicialmente, IIS se pensó como una alternativa a un servidor web que se desarrolló como un proyecto de investigación. El primer proyecto de servidor web firmado por Microsoft se distribuyó como software gratuito y fue diseñado para EMWAC (European Microsoft Windows NT Academic Center).
Sin embargo, al ver que el servidor EMWAC no podía manejar todo el volumen de tráfico que iba al sitio web microsoft.com, el proyecto se abandonó y Microsoft desarrolló su propio servidor web en forma de IIS.
Un aspecto notable es que la mayoría de las versiones de IIS se lanzaron con o junto con una versión del sistema operativo Windows. Seguramente, en ese entonces IIS era simplemente una sombra de cómo lo conocemos hoy; de hecho, cada versión de Windows podría servir como un punto de control para la evolución de IIS.
- IIS 1.0
- La primera versión de IIS
- Publicado como complemento gratuito para Windows NT 3.51
- IIS 2.0
- Incluido gratis con Windows NT 4.0
- IIS 3.0
- Incluido con Windows NT 4.0 Service Pack 2
- Se agregó el entorno de secuencias de comandos dinámicas de Active Server Pages
- IIS 4.0
- Publicado como componente del Option Pack de Windows NT 4.0
- Aplicación de administración basada en MMC agregada
- IIS 5.0
- Incluido con Windows 2000
- Adicional:
- Nuevos métodos de autenticación
- Compatibilidad con el protocolo WebDAV
- Mejoras ASP
- HTTP.SYS
- Remoto:
- Compatibilidad con el protocolo Gopher
- IIS 5.1
- Incluido con Windows XP Professional
- No muy diferente a IIS 5.0
- IIS 6.0
- Incluido con Windows Server 2003 y la edición x64 de Windows XP Professional
- Adicional:
- Soporte IPv6
- Un nuevo soporte de procesos de trabajo para aumentar la confiabilidad y la seguridad.
- Se introdujo HTTP.SYS como escucha de puerto de solicitudes HTTP específicas de HTTP
- IIS 7.0
- Se envía con Windows Server 2008 y Windows Vista
- Adicional:
- Nuevo diseño modular para un mayor rendimiento y una superficie de ataque reducida
- Sistema de configuración de jerarquía para ayudar a implementar sitios web más fácilmente
- Aplicación de administración basada en Windows Forms
- Nuevas opciones de gestión de la línea de comandos
- Mejor compatibilidad con .NET Framework
- Cambió:
- Número ilimitado de conexiones permitidas
- Solicitudes simultáneas limitadas a 10 o 3, según el sistema operativo
- Permite solicitudes adicionales y las pone en cola, en lugar de descartarlas
- IIS 7.5
- Incluido en Windows Server 2008 R2 y Windows 7 (necesita activación manual desde Programas y características)
- Adicional:
- Compatibilidad con TLS 1.1 y TLS 1.2
- Herramienta Analizador de prácticas recomendadas
- Aislamiento de procesos para grupos de aplicaciones
- Mejorado:
- Módulos FTP y WebDAV
- Administración de la línea de comandos en PowerShell
- IIS 8.0
- Disponible exclusivamente en Windows Server 2012 y Windows 8
- Adicional:
- SNI (enlace de nombre de host SSL)
- Soporte de certificado SSL centralizado
- Inicialización de la aplicación
- Escalado de hardware NUMA de varios núcleos
- IIS 8.5
- Incluido en Windows Server 2012 R2 y Windows 8.1
- Adicional:
- Salida de página de proceso de trabajador inactivo
- Registro mejorado
- Activación dinámica del sitio
- Volver a vincular automáticamente el certificado
- Registro ETW
- IIS 10.0
- Versión 1607
- Incluido en Windows Server 2016 y Windows 10 Anniversary Update
- Adicional:
- Soporte HTTP / 2
- Ejecutando IIS en Nano Servidores en contenedores de Windows
- Nueva API de gestión de descanso y una GUI de gestión basada en web
- Encabezados de host comodín
- Versión 1709
- Incluido en Windows Server versión 1709 y Windows 10 Fall Creators Update
- Adicional:
- Soporte HSTS
- Mejoras de contenedores
- 4 nuevas variables de servidor
- Cmdlets de PowerShell de enlace de sitios
- Versión 1809
- Incluido en Windows Server 2019 y Windows 10 October Update
- Adicional:
- Indicadores de control de grapado HTTP / 2 y OCSP por sitio
- API de compresión
- Módulo de soporte GZIP y brotli
- Módulo de configuración HSTS
Si planea usar IIS, intente seguir con la última versión estable, ya que generalmente es la que tiene la seguridad más estricta y produce los mejores resultados orientados al rendimiento, especialmente si está ejecutando la última versión de Windows o Windows Server.
¿Cómo instalar IIS?
Como dijimos anteriormente, no necesita instalar IIS, ya que en realidad debería venir incluido con su versión de Windows. Si está utilizando Windows 10, ya debería tener alguna versión de IIS 10.0 disponible en su PC.
Sin embargo, Microsoft decidió no activar IIS de forma predeterminada, por lo que deberá habilitarlo manualmente. Pero no se preocupe, no es exactamente ciencia espacial hacer esto. Simplemente siga estos pasos para activar IIS en su PC:
- Abra su Panel de control
- Vaya a Programas y características
- Haga clic en el botón Activar o desactivar las funciones de Windows
- Marque la casilla Servicios de información de Internet
- Haga clic en el botón Aceptar
Ahora es posible que desee reiniciar su PC para que su sistema pueda cargar todos los archivos de configuración necesarios y le permita usar IIS en toda su extensión. También puede funcionar sin reiniciar su PC, pero reiniciar su sistema después de habilitar una nueva función nunca es una mala idea.
También puede habilitar IIS en su computadora mediante PowerShell. Si nunca ha oído hablar de él, PowerShell es una herramienta compleja que muchos confunden con CMD. PowerShell es mucho más complejo que eso, pero no entraremos en demasiados detalles. Sin más preámbulos, así es como puede habilitar IIS en su PC con Windows usando PowerShell:
- Inicie PowerShell
- Copie y pegue el siguiente comando en PowerShell:
Enable-WindowsOptionalFeature –online –featurename IIS-WebServerRole
- Espera a que finalice el proceso
Como puede ver, PowerShell sugiere que no es necesario reiniciar después de habilitar IIS en su PC con Windows 10. Si desea revertir el proceso, puede usar el siguiente comando para deshabilitar IIS usando PowerShell:
Disable-WindowsOptionalFeature –online –featurename IIS-WebServerRole
Sin embargo, tenga en cuenta que para deshabilitar esta función, incluso PowerShell recomienda que reinicie su PC. También es posible reiniciarlo más tarde, pero no inicie ningún proyecto nuevo mientras tanto.
How does the IIS server work?
First and foremost, it’s worth noting that IIS has its own process engine that can take care of all client-server requests. Therefore, whenever a client sends a request to your web server, IIS processes that request, generates a reply, and sends it to the client.
From an architectural standpoint, this process unfolds on two different layers:
- Kernel Mode – the code can execute any command, given that it has full access to connected hardware, which is precisely why this mode is used exclusively for trusted processes and why crashes in this mode can bring the whole system down. Last, but not least, HTTP.SYS can be found in Kernel Mode.
- User Mode – commands that are executed in this mode don’t interact directly with hardware or reference memory, but employ APIs to do that for them. This mode offers an additional layer to prevent mishandling of the server and mistakes can be easily undone if necessary.
As we’ve mentioned above, you can find HTTP.SYS in the Kernel Mode. HTTP.SYS is used to forward client requests to an application pool. This request forwarding process is initiated whenever the client interacts with the web site’s URL, attempting to access the page. Whenever this happens, HTTP.SYS retrieves the client’s requests and queues them for specific application pools.
After the forwarding of the request, w3wp.exe (the Worker Process) loads the ISAPI filter and either loads HttpRuntime.ProcessRequest by itself, or in conjunction with aspnet_isapi.dll if it’s an ASPX page. The launch of HttpRuntime.ProcessRequest marks the beginning of the processing, after which the HttpRuntime process uses HttpApplication objects to build a pool, the contents of which will be passed through HTTP.
The HTTP modules are then activated, and this process goes on until the request gets to the ASP.NET page’s HTTP handler. After the request gets through the HTTP route, the page starts to be displayed.
What is the Worker Process?
First of all, it’s worth noting that there’s not only one Worker Process. In fact, there are several such entities that ensure the well-functioning of your web server and the content you host on it, whether it’s websites or applications we’re talking about.
So, IIS’s worker processes are in charge of providing us with the execution environment for all applications and websites you’ve previously configured in the IIS. These processes contain several pieces of information that are crucial to the well-functioning of the aforementioned services.
It’s possible that you can make use of the API to retrieve information regarding memory footprint or CPU utilization. These details can help you keep a close eye on the overall health of your web server and its related worker processes.
Last, but not least, you can use the API to terminate worker processes by simply sending a DELETE request to the worker processes endpoint.
What is the Application Pool?
Although the name is somewhat self-explanatory, the purpose of IIS’s Application Pool is far more complex. First and foremost, the Application Pool contains the worker processes, so it’s safe to say that it plays the role of a container. Furthermore, it isolates applications from each other whether they run on the same server or on separate ones, which is contrary to how a pool usually works.
It’s quite important to know that a single application pool can hold several websites. So, in other words, you can say that an application pool is but a set of URLs that have been handled by worker processes. The separation of applications in these pools is justified by the fact that it could significantly simplify management. More so, it is because of this isolation that, in the event of one application pool failing, the other ones can keep going on as usual.
How to configure an IIS server?
You’ve enabled IIS on your computer and you’ve learned a bit about its components, now let’s see how you can properly configure it so you can run your own web server without significant efforts.
- Press the Win key on your keyboard
- Type PC and right-click the This PC icon
- Select the Manage option from the context menu
- Expand the Services and Applications option
- Select the Internet Information Services box
- Click the Web Sites option
- Right-click the Default Web Site node if the default node hasn’t started for you
As we mentioned a while back, one of the main reasons why people use IIS is for easy web application deployment. IIS and its Advanced Installer feature allow you to configure and deploy web apps on several servers without skipping a beat. You also don’t need to create new configurations for each machine, as IIS can easily take care of that.
If you want to configure a new website, the first thing you’ll want to do is head to the Files and Folders view, where you can manage existing application files or add new ones if you want. Note that you’ll need to place your application files in their individual directory, considering that your website’s admin panel will make use of them later on.
Once you took care of the files, you can move to the IIS Server view, where you can use the New Web Site toolbar to type your new website’s name. What you’ll need to do next is adjust your website’s HTTP/HTTPS settings and consider using SSL for added security. Here’s how you can configure HTTP and SSL for your website or folder:
- Make sure you’re logged on your PC using the Administrator account
- Press the Win key on your keyboard
- Type control and click the Control Panel icon when it appears
- Go to the Administrative Tools section
- Select the Internet Information Services (IIS) Manager
- Choose the website you wish to configure in the left section
- Right-click the website you wish to configure with SSL
- Select Properties from the context menu
- Navigate to the Directory Security tab
- Select the Edit option
- Click the Require Secure-Channel (SSL) option
- Toggle the Require 128-bit encryption option
- Select Accept client certificates to block users without certificates
- Select Ignore client certificates to allow connections regardless of certificates
How can I secure an IIS web server with SSL?
SSL, which is short for Secure Sockets Layer, is still one of the best ways to encrypt communications between you and any target website. Remember a while back that many websites made the leap from HTTP to HTTPS? Well, SSL certificates were and still are an essential part of this process.
the good news is that you can deploy SSL to your website quite easily using IIS. On the other hand, you’ll definitely have to purchase a certificate, since they’re the only way your website can be acknowledged as trustworthy from a data encryption standpoint.
Therefore, the first step would be finding an SSL certificate provider and purchase such an item. After the purchase, you’ll receive either a code or a certificate file. In order to configure SSL with IIS we’ll need the certificate file, so make sure you retrieve it before moving on.
Secure IIS web server with SSL
- Download the certificate file (P7B format) on your PC
- Start the IIS Manager (type inetmgr in the Run utility on your PC)
- Select the server you wish to use from the Connections left-side pane
- Access the Server Certificates option in the central part of the screen
- Click the Complete Certificate Request hyperlink in the right Actions pane
- In the newly-opened window click the … button
- Change the file type from *.cer to *.*
- Navigate to the location where you downloaded the P7B file on your PC
- Double-click your certificate P7B file
- Type a memorable name in the Friendly name field
- Click the OK button once you’ve finished choosing a name
Now you’ve successfully installed a certificate for your IIS server. However, that’s not nearly enough, as you’ll still have to bind the certificate for your website. By the end of it, you’ll have a secure website with a certificate that’s associated with your website, port, and IP address.
Bind security certificate to the website
- Launch the IIS Manager
- Select the website you want to associate with your certificate from the left pane
- Click the Bindings button in the right-hand Actions pane
- Click the Add… button in the newly opened window
- Select HTTPS from the Type combo menu
- Choose either All Unassigned or the website’s IP address from the IP address menu
- Type 443 in the port field
- Select the certificate you installed earlier (it should have the name you chose for it)
- (Optional) Use the View… button to see some details about your certificate
- Toggle the Require Server Name Indication option if you host more than one domain on the same IP address and type a name in the Host name field
- Click the OK button to close the Add Site Binding window
- Close the Site Bindings window
So we’ve managed to install SSL on your IIS web server and associate it with your website. You can use the steps above to associate certificates with more than just one website if the need arises. However, there’s still one thing we need to do: redirect incoming HTTP traffic to HTTPS, to ensure encryption of our visitors’ traffic.
Redirect HTTP to HTTPS
- Visit the official URL Rewrite extension page
- Click the large green Install this extension button
- Launch the executable and complete the installation of URL Rewrite
- Run the IIS Manager
- Select the website you want to redirect traffic for
- Double-click the URL Rewrite icon in the central section of the screen
- Click the Add rules button
- Select Blank rule in the newly opened window (Inbound rules section)
- Type a name that’s easy to remember in the Name field
- Set the Requested URL field to Matches the Pattern
- Choose Regular Expressions in the Using field
- Type
(.*)
in the Pattern field
- Check the Ignore case option
- Scroll down and expand the Condition section (if needed)
- Choose the Match All option from the Logical grouping menu
- Click the Add button
- Type
{HTTPS}
in the Condition input field
- Choose Matches the Pattern from the Check if input string menu
- Type
^OFF$
in the Pattern field
- Check the Ignore case option
- Click the OK button
- Scroll down and expand the Action section (if needed)
- Choose Redirect from the Action type menu
- Type
https://{HTTP_HOST}/{REQUEST_URI}
in the Rewrite URL field
- Make sure to uncheck the Append query string
- Choose Permanent (301) from the Redirect type menu
- Click the Apply button in the right-hand menu (Actions pane)
That’s it, you’ve now completely implemented SSL on your web server, bound it to your website, and configured the site to redirect incoming HTTP traffic to HTTPS. If done correctly, visitors who try to access your website using HTTP will be automatically redirected to its secure HTTPS counterpart.
What are Virtual Directories?
As we’ve established before, creating and managing a website isn’t the only thing that IIS is capable of doing. You can also create applications, which we already mentioned, but most importantly, you can create virtual directories by simply giving them a name that maps them to a physical directory.
The way this feature works is by letting users access various types of content that are hosted on a server quickly through a direct name. Surely enough, this content could be a website, but it could also be photos, videos, or other types of smaller media files.
Back in the day when IIS 6.0 was all the fuss, virtual applications, and directories were treated as separate objects by IIS. As such, applications consisted of the following elements:
- AppRoot
- AppIsolated
- AppFriendlyName
- AppPoolId
Starting with IIS 7.0, virtual applications and directories are organized within a hierarchy, but they’re still considered to be separate objects. Thus, a website, which is higher in the hierarchy, can contain several applications, or virtual directories that are mapped to a physical location on your PC.
What are log files in IIS?
In IIS log files serve the same purpose they do wherever else you may encounter them. You can use these files to check how things unfolded on your web server, see important events, and, most importantly, understand where things went wrong if any malfunction occurs.
In other words, an IIS log file keeps tabs on everything that happens to your web server, in case you ever need it. A few examples of recorded data include the precise date and time of the events, how much data was transmitted, and the IP addresses related to the events.
Find log files on IIS 7.0 and later
- Hit the Win key on your keyboard
- Type control and select Control Panel
- Double-click the Administrative Tools option
- Launch Internet Information Services (IIS)
- Select your website from the left-hand pane
- Click (or double-click) the Logging icon in the central portion of the screen
- Identify the Directory dialog box at the bottom of the screen
- Click the Browse button to reach the location of IIS log files on your system
Find log files on IIS 6.0 and earlier
- Repeat steps 1-4 from the instructions above
- Right-click your website
- Select Properties from the context menu
- Navigate to the Website tab
- Access the Active Log Format section
- Click the Properties button
- Check the bottom of the screen for the log file directory and names
Can I change ports in IIS?
IIS uses port 80 for all HTTP traffic by default, but that doesn’t mean you can’t change it to another value if you want or need to. Changing to a different port can help you avoid certain firewall-related connectivity issues or dodge attacks that target certain service-port vulnerability combos.
Change default port in IIS
- Launch the IIS Manager
- Right-click your website from the left-hand pane
- Select Properties from the context menu
- Locate the TCP port field
- Type the value of the new port in the TCP port field
Since IIS usually uses port 80 by default, there’s no need to specify it whenever you want to test your website’s functionality, for instance, from inside a browser. You just type your domain name and you should be able to access your website without a hiccup.
However, if you insist on changing the default port, you’ll need to specify it each time you’re trying to access your website from a web browser. You can do that by adding :port number (where port number is the actual port you’re using) at the end of your domain name.
If, for instance, we would change the port of our website to, let’s say 2609, accessing it would look like this: Tips.WebTech360.com:2609
. Pretty simple, right?
Now if you’re using an older version of Windows, and implicitly an older version of IIS, there are a few things you’ll need to do in a different manner to change the default port.
Change IIS port on Windows 8.1
- Locate the Search Box on your homepage
- Type IIS Manager
- Select Internet Information Services Manager from the search results
- Click the Default Web Site in the left-hand menu
- Select the Bindings option from the right-hand menu
- Highlight http on the main screen
- Click the Edit button
- Type the new value in the Port field
- Click the OK button and close the window
- Select the server node in the left-hand section of the IIS Manager
- Click the Restart Server button in the right-hand sidebar
How can I monitor IIS?
If you’re not exactly a fan of keeping things in order through manual testing and checking log files frequently (we get you), you may want to consider leaning on third-party software solutions that could keep an eye on your IIS web server for you.
SolarWinds Server & Application Monitor
SolarWinds Server & Application Monitor is currently one of the best third-party utilities that can help you monitor your IIS website, server, application, or virtual directory without significant efforts. You just point it to the things you want to keep track of and let it work its magic.
Not only does this tool let you know if your websites and web servers are up and running, but it also provides you with an impressive range of key metrics, including but not limited to CPU, memory & disk usage, and response times.
Furthermore, if there’s something wrong with one of the websites you’re monitoring, SolarWinds Server & Application Monitor can automatically restart it for you in an attempt to fix the issue in a simple manner.
SolarWinds Server & Application Monitor’s screen is split into multiple sections, where you can monitor and analyze your applications and websites, access an overview of your applications’ health status displayed in graph form, and even manage applications at the press of a button.
You can also use this tool to keep track of your SSL certificates‘ expiration dates so that you can always be on top of things when it’s time to renew a soon-to-expire certificate. More so, you can use SolarWinds Server & Application Monitor to manage SSL certificates for several websites or servers for added convenience.
If you’re curious and want to give SolarWinds Server & Application Monitor a try, you’ll be glad to know that there’s a 30-day free trial available, so that you can test run its capabilities before committing to purchasing a license.
What is IIS – Conclusion
To wrap it up, IIS is a handy Microsoft webserver service you can use to create your own server, as well as manage websites, applications, and virtual directories in it without breaking a sweat. It’s currently the second most popular Windows web server in the world, losing first place to Apache HTTP, which is a completely free alternative.
IIS is mainly used to manage commercial websites, which requires you to purchase a commercial license. The price of such a license varies depending on the number of users you plan on having on the website.
Configuring IIS is somewhat intuitive, but you’ll need to be a bit tech-savvy to be able to make out all of its features, understand what each of them does and configure them to get the most out of your web server and associated websites or applications.