Compartilhar via


Introdução do IIS no Nano Server

por David So

Compatibilidade

Versão Observações
IIS 10.0 Os recursos descritos nesse artigo foram introduzidos no IIS 10.0
IIS 8.5 e versões anteriores Os recursos descritos nesse artigo não tinham suporte antes do IIS 10.0

Nano Server

O Nano Server é uma nova e empolgante opção de instalação no Windows Server 2016.

Aqui está uma citação da Introdução ao Guia do Nano Server que resume muito bem o Nano Server:

"O Nano Server é um sistema operacional de servidor administrado remotamente otimizado para data centers e nuvens privadas. É semelhante ao Windows Server no modo Server Core, mas significativamente menor, não tem nenhum recurso de logon local e só oferece suporte a agentes, ferramentas e aplicativos de 64 bits. Ele ocupa bem menos espaço em disco, configura consideravelmente mais rápido e exige muito menos atualizações e reinicializações que o Windows Server. Quando ele reinicia, é muito mais rápido."

O Nano é muito menor em disco. Mais rápido. Menos reinicializações. Usa menos memória. O que há para não gostar? :)

IIS do Nano Server

Com o lançamento do Windows Server 2016, temos o prazer de anunciar que o IIS agora está disponível como uma função no Nano Server, para todos experimentarem. Com memória e espaço em disco menores, as cargas de trabalho da Web são particularmente adequadas para execução no Nano Server, especialmente para hospedagem de alta densidade.

Introdução

Mas, essencialmente, a maneira mais comum de criar um vhd(x) do Nano Server é por meio do cmdlet New-NanoServerImage.

Para habilitar o IIS, basta passar Microsoft-NanoServer-IIS-Package como um argumento para o parâmetro Pacotes. por ex.

New-NanoServerImage -MediaPath f:\ -BasePath .\Base -TargetPath .\Nano1.vhd -GuestDrivers -Packages Microsoft-NanoServer-IIS-Package

Principais diferenças entre o IIS no Nano e no servidor normal

Instalação

Fizemos muitas alterações no IIS para o Nano para oferecer suporte à instalação online e offline. Por "online" nos referimos a quando o computador estiver "em execução" (não no sentido de conectividade de rede) e por "offline" nos referimos a quando o computador não estiver em execução.

Historicamente e no servidor normal, o IIS só pode ser instalado online (computador em execução). Ao preparar um computador com o IIS, você normalmente seguiria uma sequência como:

  1. Instalar o sistema operacional
  2. Aguardar a conclusão da instalação
  3. Habilitar a Função do IIS
  4. Aguardar a conclusão da função IIS
  5. Definir configurações - por exemplo, configurações de autenticação, módulos, Asp.Net

Com o Nano Server, a configuração pode ser provisionada off-line, simplificando e acelerando drasticamente as etapas 1 a 4 acima.

Ao usar New-NanoServerImage para criar um vhd(x) com Microsoft-NanoServer-IIS-Package, configuramos uma instalação de trabalho padrão do IIS

  • Serviços IIS instalados (por exemplo, WAS, W3SVC)

  • Um conjunto padrão de sub-recursos do IIS habilitados, como Documento padrão, Conteúdo estático, Log HTTP etc.

    • Consulte o gráfico para quais sub-recursos estão habilitados por padrão.
  • Regra de firewall habilitada para portas padrão 80/443

Torna-se extremamente rápido provisionar novos computadores de servidor Web ao usar a imagem vhd(x) gerada que já tem o IIS integrado. No meu computador desktop do escritório, pude criar novas VMs, fazer especialização offline, inicializar e atender solicitações da Web em cerca de 25 segundos. Tentar fazer o mesmo com o Server Core teria levado muito mais tempo.

Configuração

A configuração de sub-recursos do IIS, como autenticação e registro em log, ainda é uma etapa somente online (a mesma do servidor normal).

No servidor normal, os sub-recursos do IIS podem ser habilitados/desabilitados por meio de comandos do DISM, como dism /online /enable-feature /all /featurename:IIS-WindowsAuthentication.

Na Visualização Técnica do Windows Server 2016, a configuração de sub-recursos do IIS por meio do DISM não estava disponível e exigia mais trabalho (daí a Visualização Técnica....) Esta é definitivamente uma área onde estamos buscando melhorar.

Por enquanto, os comandos do PowerShell podem ser usados para habilitar/desabilitar os módulos apropriados ou editar applicationHost.config. Consulte Documentos do IIS Nano para obter mais informações.

O gráfico lá também mostra os sub-recursos disponíveis do IIS no Nano a partir da Visualização Técnica mais recente. Os * mostram somente o que está habilitado por padrão (sem o * está disponível, mas precisa ser habilitado).

Estruturas com suporte

ASP.NET Core

A diferença mais notável entre o Nano e o Servidor normal é que o Nano tem como alvo o Asp.Net Core (anteriormente conhecido como Asp.Net 5). O Asp clássico não será executado no Nano e nem aplicativos .Net Framework completos, como Asp.Net <=4.

Aqui está minha postagem no blog sobre como obter um aplicativo Asp.Net Core em execução com o IIS no Nano.

Java

Os aplicativos Java podem ser hospedados no IIS via HttpPlatformHandler.

Meu colega de trabalho Jeong Hwan tem uma postagem no blog aqui sobre como fazer o Java trabalhar com o IIS no Nano

Others

O suporte ao ASP.NET Core e Java no IIS Nano é um ótimo começo, embora tenhamos planos para obter suporte a plataformas adicionais. O HttpPlatformHandler é um módulo de uso geral para gerenciar e enviar solicitações para ouvintes http, portanto, é bem possível que haja mais plataformas que possam ser executadas bem no Nano que não testamos e, portanto, não listamos.

Se você tentar (por exemplo, com Ruby ou Node) e funcionar, avise-nos!

Gerenciamento

O Nano Server é um sistema operacional ''sem cabeça'' - não há GUI no próprio servidor. O PowerShell está na frente e no centro da experiência de gerenciamento do Nano. É claro que isso significa que você poderá gerenciar o IIS no Nano usando nossos cmdlets do IIS PowerShell.

Devo esclarecer que, a partir do IIS 10.0, existem 2 módulos do IIS PowerShell:

O Nano Server é uma plataforma de servidor limpa para o futuro e, portanto, atualmente não temos planos de incluir o módulo WebAdministration herdado mais antigo. Em vez disso, forneceremos o novo módulo IISAdministration.

Além do PowerShell (IISAdministration), também é uma opção usar appcmd.exe para gerenciar o IIS.