O que é o IIS? O servidor web do Windows da Microsoft e suas alternativas.
O Internet Information Services (IIS) é a plataforma de servidor web da Microsoft para Windows. Ele recebe solicitações HTTP e HTTPS e serve sites, aplicativos web e APIs. O termo "Windows Web" às vezes é usado informalmente para se referir ao IIS; não se trata de um produto de servidor da Microsoft separado. Os administradores podem gerenciar o IIS com o Gerenciador do IIS (interface gráfica), o PowerShell, ferramentas de linha de comando e arquivos de configuração.
No Windows Server, o IIS é instalado como a função Servidor Web (IIS) . Em edições de cliente Windows compatíveis, ele pode ser habilitado como um recurso opcional, geralmente para desenvolvimento ou teste local. Os componentes disponíveis dependem da edição e versão do Windows, portanto, a configuração de um PC de desenvolvimento não deve ser considerada um guia de implantação em produção.
Um diagrama ilustrado do Gerenciador do IIS mostra onde os administradores selecionam um site e acessam as configurações comuns.
O que o IIS fornece
O IIS pode servir arquivos estáticos, como HTML, folhas de estilo, scripts e imagens. Ele também pode encaminhar solicitações para aplicativos que geram conteúdo dinamicamente. O IIS utiliza módulos opcionais para tarefas como autenticação, registro de logs, filtragem de solicitações, compressão e reescrita de URLs, permitindo que os administradores habilitem os recursos necessários para cada aplicativo.
O IIS é comumente usado com aplicações web da Microsoft. Por exemplo, o ASP.NET Core pode ser executado com o IIS através do módulo ASP.NET Core; a documentação atual do .NET Hosting Bundle da Microsoft explica o runtime e o módulo necessários para essa configuração. Outras tecnologias podem funcionar através de manipuladores ou módulos adicionais, mas a compatibilidade, a manutenção e o suporte de segurança devem ser verificados para a aplicação específica.
O console gráfico é uma das principais conveniências do IIS. Ele organiza sites, associações, pools de aplicativos, módulos, configurações de segurança e logs em um único local. Esse mesmo ambiente também pode ser automatizado com o PowerShell ou configurado por meio de arquivos, o que ajuda as equipes a replicar configurações em diferentes servidores.
Como o IIS lida com uma solicitação da web
No IIS moderno, a pilha HTTP do Windows, HTTP.sys, fica à escuta de tráfego HTTP e HTTPS. Os serviços do IIS e o Serviço de Ativação de Processos do Windows (WAS) usam a configuração do servidor para encaminhar uma solicitação para o site e o pool de aplicativos corretos. Um processo de trabalho então processa a solicitação e retorna uma resposta por meio da pilha HTTP. O guia de arquitetura do IIS da Microsoft descreve esses componentes e o fluxo de solicitações.
Um pool de aplicações agrupa uma ou mais aplicações web sob configurações de processos de trabalho. Pools separados criam limites de processo, o que pode impedir que um problema em uma aplicação afete diretamente aplicações em outro pool. Eles não isolam as cargas de trabalho do sistema operacional, CPU, memória ou capacidade de rede compartilhados do servidor, portanto, o uso de recursos e as permissões ainda precisam ser monitorados.
Fluxo conceitual de requisição: o HTTP.sys recebe uma requisição do navegador, o IIS a encaminha para um pool de aplicativos e um processo de trabalho retorna a resposta.
Quando o IIS faz sentido?
Escolha o IIS quando sua aplicação já depender do Windows Server, ASP.NET, autenticação do Windows ou configuração específica do IIS, ou quando sua equipe estiver capacitada para administrar servidores Windows.
Considere outro servidor se precisar de uma implementação com foco em Linux, preferir configuração baseada em arquivos ou desejar um proxy reverso com um modelo operacional diferente.
Use o IIS Express para desenvolvimento e testes locais leves quando uma instalação completa do servidor não for necessária. A Microsoft o descreve como uma versão voltada para desenvolvimento, não como um substituto geral para hospedagem em produção.
O IIS é um componente do Windows, e não uma licença de servidor web adquirida separadamente por site ou visitante. No entanto, a licença do Windows Server e as regras de acesso podem ser aplicadas à implementação. A Microsoft observa que uma Licença de Acesso para Cliente (CAL) pode ser necessária para acessar o software do Windows Server; consulte as diretrizes oficiais da CAL e os termos do seu contrato de hospedagem específico.
Alternativas ao IIS a considerar
Não existe um servidor web "ideal" para todos. Compare a plataforma que sua aplicação precisa, como sua equipe prefere configurar os serviços e se o servidor precisa hospedar uma aplicação diretamente ou rotear o tráfego para outro processo.
Comparação conceitual de interfaces: o IIS utiliza um console do Windows, enquanto o Apache e o NGINX são frequentemente configurados por meio de arquivos de texto.
Opção
Bom ajuste quando
Troca a ser considerada
Servidor HTTP Apache
Você deseja um servidor modular e de código aberto com amplas opções de configuração e documentação completa da plataforma.
Seus diversos módulos e diretivas oferecem flexibilidade, mas exigem que os administradores compreendam e mantenham a configuração. Consulte a documentação do servidor HTTP Apache .
NGINX
Você precisa de um servidor web que também possa funcionar como um proxy reverso ou balanceador de carga HTTP na frente dos serviços da aplicação.
É configurado por meio de arquivos de texto e geralmente encaminha solicitações dinâmicas para um processo de aplicativo separado. Consulte a documentação oficial do NGINX .
Caddy
Você deseja uma configuração concisa e o provisionamento e renovação automáticos de certificados HTTPS para nomes de host públicos elegíveis.
O HTTPS automático ainda depende da configuração correta de domínio, rede e implantação; consulte o guia oficial de HTTPS automático do Caddy .
Para uma aplicação Windows existente, manter o IIS pode ser a opção mais simples, desde que o servidor tenha suporte e seja mantido de forma segura. Para um novo projeto, a decisão deve ser baseada nos requisitos da plataforma da aplicação e nas ferramentas operacionais que sua equipe consegue utilizar com confiabilidade. Teste a autenticação, as regras de URL, os certificados, o registro de logs e o comportamento de implantação antes de migrar um site em produção de um servidor para outro.
Resumindo
O IIS é o servidor web configurável da Microsoft para Windows, com um console de gerenciamento e um modelo de pool de aplicativos que se adequa a muitos sites e serviços hospedados no Windows. O Apache HTTP Server, o NGINX e o Caddy são alternativas viáveis quando suas plataformas ou modelos operacionais se adequam melhor ao projeto. A escolha deve ser baseada na compatibilidade com o aplicativo, nas necessidades de administração e nos requisitos de licenciamento e suporte de todo o ambiente.