Como instalar o IIS no Windows Server

Importante: execute comandos como administrador e teste em um ambiente de homologação antes da produção.
Sumário
- Instalar via Gerenciador do Servidor
- Abrir o Gerenciador do Servidor
- Adicionar funções e recursos
- Selecionar o servidor e os componentes
- Verificar a instalação
- Instalar via PowerShell ou DISM
- Método PowerShell
- Método DISM
- Por que você pode precisar do IIS
- O que fazer depois da instalação
- Solução de problemas comum
- Quando não usar IIS e alternativas
- Checklist de pré-instalação e pós-instalação
- Segurança e hardening do IIS
- Compatibilidade e migração
- Glossário rápido
- FAQs
Instalar via Gerenciador do Servidor
Abrir o Gerenciador do Servidor
- Clique no menu Iniciar e escolha Server Manager.
- No Gerenciador do Servidor, clique em Manage e selecione Add Roles and Features.
Adicionar funções e recursos
- O Assistente Add Roles and Features será exibido. Clique em Next para continuar.
- Escolha Role-based or feature-based installation e clique em Next.
Selecionar o servidor e os componentes
- Selecione o servidor no pool e clique em Next.
- Na tela Select server roles, marque Web Server (IIS). Aceite a adição de recursos necessários quando solicitado.
- Em Select features, inclua componentes opcionais como ASP.NET ou .NET Extensibility conforme a necessidade da sua aplicação.
- Em Role services, selecione serviços como Management Tools, Web Server, Application Development (ASP.NET), e outros conforme o caso.
- Clique em Next, revise e depois em Install.
Verificar a instalação
- Quando a instalação terminar, clique em Close.
- Abra um navegador no servidor e acesse http://localhost. A página de boas-vindas do IIS confirma a instalação bem-sucedida.
Instalar via PowerShell ou DISM
Método PowerShell
Execute PowerShell como administrador. Comandos comuns:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Para incluir recursos adicionais, por exemplo ASP.NET, ferramentas de gerenciamento e WebSockets:
Install-WindowsFeature -Name Web-Server, Web-ASP, Web-Mgmt-Tools, Web-WebSockets
Observação: se estiver usando o módulo ServerManager em versões mais recentes, o mesmo comando funciona. Use scripts para automação e configuração reprodutível.
Método DISM
DISM é útil em cenários de imagem ou quando PowerShell não está disponível. Exemplos:
dism /online /enable-feature /featurename:IIS-WebServerRole /all
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
dism /online /enable-feature /featurename:IIS-WebSockets /all
Esses comandos ativam a função do servidor web e recursos relacionados. Combine com scripts para implantação em vários servidores.
Por que você pode precisar do IIS?
IIS é a implementação nativa de servidor HTTP da Microsoft para Windows Server. Use-o para:
- Implantar aplicações ASP.NET e sites estáticos.
- Hospedar dashboards internos e APIs internas.
- Gerenciar certificados SSL/TLS e bindings por site.
- Implementar proxy reverso simples com ARR e regras com URL Rewrite.
IIS integra-se com o ecossistema Windows, facilitando autenticação integrada e gerenciamento centralizado.
O que fazer depois da instalação
- Criar sites e pools de aplicações conforme o modelo da sua aplicação.
- Configurar bindings HTTP/HTTPS e instalar certificados válidos.
- Ajustar permissões de pasta e identidade do pool de aplicações.
- Habilitar logs e definir política de retenção.
- Automatizar deploys com Web Deploy ou pipelines CI/CD.
Dica rápida: sempre valide em um ambiente de homologação antes de publicar mudanças em produção.
Solução de problemas comum
- Página de boas-vindas não aparece: verifique serviço World Wide Web Publishing Service e firewall.
- Erros 500: cheque permissões do pool de aplicações e o arquivo web.config.
- Erro ao habilitar componentes via DISM: execute sfc /scannow para verificar integridade da imagem do sistema.
Quando não usar IIS e alternativas
Contraexemplos e casos em que IIS não é ideal:
- Para aplicações nativas de Linux ou containers leves, considere Nginx ou Apache em Linux.
- Para microserviços escritos em Node.js, contêineres Docker com um proxy reverso podem ser mais portáveis.
- Se precisar de alto desempenho para conteúdo estático puro, soluções CDN junto a um servidor simples podem ser mais eficientes.
Alternativas:
- Hospedar a aplicação em Linux usando Nginx/Apache.
- Executar o runtime em contêineres e usar um load balancer na borda.
- Plataformas gerenciadas na nuvem (PaaS) quando desejar menos gestão de infraestrutura.
Mental model e metodologia rápida
Mental model: pense em IIS como uma plataforma que fornece transporte HTTP, lifecycle de aplicação e pontos de extensão (módulos). Separe responsabilidades:
- Transporte e roteamento: IIS e bindings.
- Processamento de aplicação: pools e runtimes (ASP.NET, PHP via FastCGI).
- Regras e reescrita: URL Rewrite e ARR.
Mini-metodologia para implantação repetível:
- Definir requisitos de aplicação (runtime, módulos, portas).
- Criar script PowerShell/DISM para instalar funções e recursos.
- Aplicar configurações via Web.config, AppCmd ou PowerShell.
- Testar localmente e validar segurança.
- Promover para produção via pipeline.
Checklist de pré-instalação e pós-instalação
Checklist de pré-instalação:
- Ter conta com privilégios administrativos.
- Ter plano de backup do servidor ou snapshot.
- Verificar dependências de runtime (por ex. .NET).
Checklist pós-instalação:
- [ ] Confirmar acesso a http://localhost.
- Configurar bindings e instalar certificados.
- Criar pools de aplicações separados por aplicação.
- Habilitar logs e monitoramento.
- Aplicar regras de firewall e restrições de IP se necessário.
Role-based checklist:
- Administrador de infraestrutura: scripts de instalação, backups, atualizações do SO.
- Equipe de desenvolvimento: validar configurações do web.config, compatibilidade de runtime.
- Segurança: validar TLS, headers HTTP, escaneamento de vulnerabilidades.
Segurança e hardening do IIS
Medidas recomendadas:
- Sempre usar TLS moderno e desativar protocolos antigos (SSLv3, TLS 1.0 e 1.1).
- Habilitar headers de segurança: X-Frame-Options, X-Content-Type-Options, Content-Security-Policy.
- Restringir permissões NTFS às pastas da aplicação e usar identidades dedicadas de pool.
- Desabilitar módulos desnecessários no IIS para reduzir a superfície de ataque.
- Limitar métodos HTTP permitidos e filtrar URLs malformadas.
- Monitorar logs e integrar com SIEM para detecção de anomalias.
Notas de privacidade: quando o servidor processa dados pessoais, garanta conformidade com legislações aplicáveis e registre fluxos de dados e retenção.
Compatibilidade e migração
- IIS é nativo do Windows Server; migrações para Linux exigem reescrita ou empacotamento em containers.
- Para mover sites entre servidores Windows, prefira Web Deploy ou exportação das configurações do IIS via AppCmd.
- Teste versões de .NET e dependências antes da migração; use ambientes paralelos para validação.
Glossário rápido
- Pool de aplicações: processo isolado que executa uma ou mais aplicações web.
- Binding: associação de um site a IP, porta e host header.
- ARR: Application Request Routing, módulo para proxy reverso.
Critérios de verificação
- A página de boas-vindas do IIS é acessível em http://localhost.
- Serviços essenciais do IIS estão em execução e configurados conforme o checklist.
- TLS e headers de segurança básicos foram aplicados quando exposto publicamente.
FAQs
Posso instalar o IIS sem o Gerenciador do Servidor?
Sim. PowerShell e DISM suportam instalações unattended, ideais para automação.
Preciso reiniciar o servidor após instalar o IIS?
Normalmente não. A maioria dos recursos sobe imediatamente, embora algumas configurações avançadas possam solicitar reinicialização.
Como verificar se o IIS foi instalado corretamente?
Visite http://localhost no servidor. A página de boas-vindas confirma a instalação.
PowerShell também instala as ferramentas de gerenciamento?
Somente se incluir a opção IncludeManagementTools. Caso contrário, adicione-as manualmente.
Resumo
Instalar o IIS no Windows Server é direto via Gerenciador do Servidor, PowerShell ou DISM. Após a instalação, siga um checklist de configuração, aplique hardening de segurança e automatize com scripts para ambientes reproduzíveis. Teste sempre antes de colocar em produção.