IIS 10 in Windows Server 2016 nutzen So stellen Sie einen Webserver in Microsoft-Netzen bereit
In Windows Server 2016 stehen die Internet Information Services (IIS), also der interne Webserver, in allen verfügbaren Serverversionen zur Verfügung. Die Installation kann also auch auf Core- und Nano-Servern erfolgen. Generell ist auch der Betrieb in Containern möglich.
Anbieter zum Thema

Mit Windows Server 2016 bietet Microsoft maximale Flexibilität für den internen Webserver. Administratoren können IIS auf herkömmlichen Servern mit Windows Server 2016 installieren, aber auch auf den neuen Nano-Servern und in Containern. Wie in den Vorgängerversionen lassen sich die Internetinformationsdienste, wie der Rollendienst auf deutschen Servern benannt wird, auch auf Core-Servern installieren. Im folgenden Beitrag geben wir einen Überblick zu den Installationsmöglichkeiten.
Microsoft bietet auf mehreren Internetseiten Hinweise und Tools für den Betrieb der IIS. Auf der Microsoft-Webseite gibt es darüber hinaus einen eigenen Bereich für die IIS und andere Webtools von Microsoft. Auf den Seiten erhalten Administratoren zusätzliche Informationen und Tools rund um IIS.
Neuerungen in IIS 10 nutzen
Mit den IIS in Windows Server 2016 unterstützt Microsoft auch HTTP/2. Außerdem können Administratoren für Host Header Platzhalter verwenden, auch zusammen mit der PowerShell. Ein Befehl dazu sieht zum Beispiel folgendermaßen aus:
New-WebBinding -Name "Default Web Site" -IPAddress "*" -Port 80 -HostHeader "*.contoso.com"
Wollen Administratoren verhindern, dass sich der Webserver als IIS-10-Server nach außen meldet, kann der Serverheader in der PowerShell entfernt werden:
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/security/requestFiltering" -name "removeServerHeader" -value "True"
IIS 10 arbeitet mit Nano-Servern zusammen und lässt sich daher auch auf Nano-Servern installieren. In diesem Fall stehen aber keine lokalen Verwaltungstools zur Verfügung. Die Verwaltung der IIS erfolgt in diesem Fall über das Netzwerk mit den gleichen Verwaltungstools, wie bei der Verwaltung lokaler Server. Entwickler können in einer solchen Infrastruktur auch externe Dienste wie Tomcat oder Wordpress direkt auf Nano-Servern betreiben, was den Betrieb deutlich sicherer macht.
IIS und Nano
Im Gegensatz zu Core-Servern sind Nano-Server keine weitere Installationsvariante von Windows Server 2016. Die Bereitstellung der neuen Server ist nicht in der Installationsoberfläche auswählbar. Nano-Server werden als Image bereitgestellt und bauen auf 64-Bit auf. 32-Bit-Programme und MSI-Dateien als Installationsgrundlage werden nicht unterstützt.
Microsoft bietet mit dem Nano Server Image Builder ein Tool an, mit dem Administratoren Nano-Server auch in der grafischen Oberfläche erstellen können. Zusätzlich benötigt das Tool das aktuelle Windows ADK. Über einen Assistenten lassen sich auch die IIS in das Image mit einbinden (siehe Abbildung 1).
Installation und Konfiguration auf herkömmlichen Servern
IIS 10 bzw. die Rolle „Webserver“ installieren Administratoren über den Server-Manager. Das Verwaltungstool ist nach der Installation über den Server-Manager oder durch Eingabe von „inetmgr“ im Startmenü zu finden (siehe Abbildung 2). Die Installation von weiteren Rollendiensten kann jederzeit über den Server-Manager durchgeführt werden. Der Internetinformationsdienste-Manager ist das zentrale Werkzeug zur Verwaltung des Webservers in Windows Server 2016. Mit diesem lassen sich auch Nano-Server verwalten und auch viele Einstellungen der IIS in Containern.
IIS mit Docker in Windows Server 2016
Der Befehl „docker images“ zeigt die vorhandenen Docker-Images auf dem Windows-Server an, auf dem der Container-Host installiert wurde. Standardmäßig sind noch keine Images vorhanden. Um ein Image auf Basis von Windows Server 2016 zur Verfügung zu stellen, können Administratoren die notwendigen Daten direkt bei Microsoft/Docker herunterladen:
docker pull microsoft/windowsservercore
Alternativ stehen folgende Befehle zur Verfügung:
docker pull microsoft/windowsservercore:10.0.14393.321
docker tag microsoft/windowsservercore:10.0.14393.321 microsoft/windowsservercore
Für Docker-Container in Windows Server 2016, stehen neben der Core-Installation, auch eine Nano-Installation zur Verfügung. In diesem Fall wird der folgende Befehl verwendet:
docker pull microsoft/nanoserver
Wollen Administratoren einen Container erstellen und starten, verwenden sie den Befehl „docker run“. Der Befehl startet das festgelegte Image als Container:
docker run microsoft/windowsservercore
Mit dem Docker-Client durchsuchen Entwickler den Docker-Hub nach Images auf Basis von Windows Server 2016:
docker search Microsoft
Auch ein Webserver auf Basis der IIS in Windows Server 2016 lässt sich als Container bereitstellen. Im Container-Image sind die IIS bereits verfügbar:
docker run -it -p 80:80 microsoft/iis cmd
Nach dem Start steht der Webserver mit der Standardwebseite im Container bereit. Um die Standardwebseite im Container zu löschen, wird folgender Befehl verwendet:
del C:\inetpub\wwwroot\iisstart.htm
Soll die Startseite mit einer eigenen Seite ersetzt werden, wird der folgende Befehl verwendet:
echo „Test für den IIS im Windows Server Container“ > C:\inetpub\wwwroot\index.html
Windows-Updates auf Nano-Servern installieren
Damit Container und die IIS auf Nano-Servern sicher betrieben werden können, sollten die neusten Updates für Windows Server 2016 installiert werden (siehe Abbildung 3). Das gilt natürlich auch für Core-Server und Server mit grafischer Benutzeroberfläche. Auf Nano-Servern ist die Installation von Windows-Updates jedoch teilweise etwas komplizierter. Zur Installation von Windows-Updates werden die folgenden Befehle in einer Remote-PowerShell-Sitzung eingegeben:
$sess = New-CimInstance -Namespace root/Microsoft/Windows/WindowsUpdate -ClassName MSFT_WUOperationsSession
Invoke-CimMethod -InputObject $sess -MethodName ApplyApplicableUpdates
Wenn alle Updates installiert sind, kann der Nano-Server über die Remote-PowerShell-Sitzung neu gestartet werden:
Restart-Computer
Container mit IIS erstellen und Serverdienste verwalten
Docker ermöglicht auch die lokale Verwaltung der Serverrollen von Windows Server 2016, auch für die IIS. Erstellen Administratoren zum Beispiel mit dem folgenden Befehl einen neuen Container und wechseln durch die Option „-it“ gleich in die Befehlszeile, können sie innerhalb des Containers die PowerShell starten und Installationen vornehmen:
docker run -it --name winiis -p 80:80 microsoft/windowsservercore
Sobald sich die Befehlszeile des Containers öffnet, kann mit dem Befehl „powershell“ auf dem Container eine lokale PowerShell-Sitzung geöffnet werden.
Anschließend kann überprüft werden, ob die IIS auf dem Container installiert sind. Hier stehen die gleichen Befehle zur Verfügung, wie bei herkömmlichen Servern mit Windows Server 2016:
Get-WindowsFeature web-server
Um die IIS im Container zu installieren, kann der gleiche Befehl verwendet werden, wie bei Core-Servern und Servern mit herkömmlicher grafischer Oberfläche:
Install-windowsfeature web-server
Sobald die IIS im Container installiert sind, kann über „ipconfig“ die IP-Adresse des Containers abgefragt und zum Beispiel vom Container-Host aus mit dem Internet Explorer auf die IP-Adresse des Containers zugegriffen werden. Da in diesem Beispiel die IIS installiert sind und der Port 80 auf dem Container aktiviert wurde, zeigt der Browser die Startseite der IIS im Container an.
Um zum Beispiel einen Container mit IIS zur Verfügung zu stellen, und auf dessen Basis weitere Images zu erstellen, kann auf Basis des vorgefertigten Images ein neuer Container erstellt werden:
docker run -d -p 80:80 microsoft/iis ping -t localhost
Über den Befehl können auch gleich die Ports aktiviert (-p) und sichergestellt werden, dass die IIS als Dienst gestartet werden (-d).
Dockerfiles für eigene Images erstellen
Auf Basis eines angepassten Images lassen sich weitere Container erstellen. Der Vorgang lässt sich automatisieren, in dem ein „Dockerfile“ verwendet wird. Dabei handelt es sich um eine Anweisungsdatei für neue Container. In der Datei kann zum Beispiel festgelegt werden, dass ein neues Image erstellt werden soll, welches die IIS als Basis nutzt:
FROM microsoft/iis
RUN echo "Dockerfile-Test für automatische Bereitstellung" > c:\inetpub\wwwroot\index.html
Administratoren können mit dem folgenden Befehl die IIS in einem neuen Containerimage installieren:
RUN dism.exe /online /enable-feature /all /featurename:iis-webserver /NoRestart
(ID:44809655)