Installation d’une ferme IIS

redondante en mode Core (v4.0)

Tutorial conçu et rédigé par Michel de CREVOISIER – Janvier 2014









SOURCES


Ferme IIS:
 http://technet.microsoft.com/en-us/library/jj129543.aspx

Configuration de la ferme:
 http://technet.microsoft.com/en-us/library/jj129390.aspx



INDEX

SOURCES .............................................................................................................................................................. 1
INDEX ................................................................................................................................................................... 2
Préambule ........................................................................................................................................................... 3
1. Préparation du serveur de fichiers ............................................................................................................. 4
1.1 Création des utilisateurs ...................................................................................................................... 4
1.2 Création des dossiers partagés ............................................................................................................ 4
1.3 Affectation des droits .......................................................................................................................... 4
2. Configuration des serveurs Web ................................................................................................................ 5
2.1 Ajout des fonctionnalités IIS ................................................................................................................ 5
2.2 Activation de la console de gestion distante IIS .................................................................................. 7
2.3 Création d’un site Web ........................................................................................................................ 7
2.4 Déplacement du site web .................................................................................................................... 8
2.5 Configuration IIS partagée ................................................................................................................... 9
3. Activation du « load-balancing » .............................................................................................................. 12
4. Passage en mode « Core » ........................................................................................................................ 12
4.1 Intérêts .............................................................................................................................................. 12
4.2 Activation du mode « Core » ............................................................................................................. 12
5. Console IIS distante .................................................................................................................................. 13
5.1 Configuration des serveurs Web ....................................................................................................... 13
5.2 Connexion aux serveurs Web ............................................................................................................ 15
6. Application Request Routing (ARR) .......................................................................................................... 17
6.1 Installation ......................................................................................................................................... 17
6.2 Création d’une ferme ........................................................................................................................ 18
7. Erreurs ....................................................................................................................................................... 20
7.1 503 Service unavailable ..................................................................................................................... 20
7.2 Current identity does not have write access […] ............................................................................... 20
7.3 Server manager : WebServer.Events.xml .......................................................................................... 21
7.4 Cannot write configuration file […] ................................................................................................... 21




Préambule



L’objectif de ce tutoriel est de mettre en place une ferme de serveurs web hautement disponibles.
Pour cela nous utiliserons un système de configuration IIS partagée ainsi qu’un système de répartition
de charge NLB afin d’équilibrer les requêtes. Pour terminer nous activerons le monde Core sur la
ferme afin d’optimiser et sécuriser au maximum les serveurs.


Pour ce tuto, j’utiliserai 4 serveurs membres du même domaine :
 SRV-AD: serveur Active Directory et DNS (installation non détaillée)
 SRV-WEB01 : serveur web (installation détaillée)
 SRV-WEB02 : serveur web (installation détaillée)
 SRV-FS : serveur de fichier (installation non détaillée)


Le schéma ci-dessous présente l’architecture cible :

IIS futurs
Websites
IIS futurs
Websites
Shared configuration
NLB with virtual IP
(Network Load Balancing)
File server for
IIS files





1. Préparation du serveur de fichiers

1.1 Création des utilisateurs

Depuis la console Active Directory, créez deux utilisateurs du domaine nommés :
 IIS-Websites : pour l’accès au dossier partagé contenant vos sites
 IIS-ConfigShare : pour l’accès au dossier contenant la configuration partagée d’IIS

1.2 Création des dossiers partagés

Sur votre serveur de fichiers, créez deux dossiers partagés :
 Content : contiendra les dossiers propres à vos sites web
 Config : contiendra la configuration partagée d’IIS

1.3 Affectation des droits

Affectez ensuite les droits suivants sur les dossiers créés :
 Content :
o Administrators : lecture/écriture
o IIS-Website : lecture
 Config :
o Administrators : lecture/écriture
o IIS-ConfigShare : lecture/écriture







2. Configuration des serveurs Web

2.1 Ajout des fonctionnalités IIS

Pour commencer, il vous faut ajouter le rôle IIS sur chacun de vos futurs serveurs Web. Vous disposez
pour cela de 3 possibilités listées à la suite. A toutes fins utiles, vous trouverez ici la liste des services
associés au rôle IIS 7.5.

2.1.1 Installation locale (GUI)

La première solution passe une approche traditionnelle. Autrement dit, il vous sera nécessaire de
répéter cette tâche sur chacun des serveurs de la ferme. Pour cela :
 Connectez-vous sur votre serveur (localement ou à distance)
 Lancer le Server Manager > Manage > Add roles and fetaures wizard
 Et ajoutez la fonctionnalité Web Server IIS avec les modules souhaités :

2.1.2 Installation « push » (GUI)

Cette seconde solution tire profit des nouveautés apportées par la console Server Manager de Server
2012. En effet, au lieu de vous connecter sur chaque serveur, vous aller pouvoir lancer directement
l’assistant depuis la console de votre serveur principal. Toutefois, cela ne vous dispensera pas de
répéter la tâche pour chaque serveur. Pour cela :



 Ajoutez les futurs serveurs web dans l’aparté All Servers

 Lancer le Server Manager > Manage > Add roles and fetaures wizard
 Sélectionnez le serveur de votre choix :

 Et ajoutez la fonctionnalité Web Server IIS avec les modules souhaités

2.1.3 Installation « push » (PowerShell)

Cette troisième solution est probablement la plus adaptée et la plus rapide dans le cadre de
déploiements massifs de serveurs. Pour commencer, il vous faut instancier une variable avec le nom
des serveurs sur lesquels vous souhaitez déployer ses fonctionnalités. Il suffit ensuite d’exécuter une
commande PowerShell « globale » pour installer d’un coup les fonctionnalités souhaitées. Pour cela,
ouvrez une console PowerShell et exécutez les commandes suivantes :
$Session=New-PsSession –ComputerName <name1>, <name2>, <name3>
Invoke-Command –Session $Session –ScriptBlock {Import-Module ServerManager}
Invoke-Command –Session $Session –ScriptBlock {Add-WindowsFeature Web-Server,Web-Mgmt-
Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-
Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security, Web-
Mgmt-Service, Web-Basic-Auth, Web-Windows-Auth }

Vous pouvez également préciser un chemin différent pour les sources : -Source D:\sources\sxs



 Vérifiez que les rôles ont bien été déployés :

2.2 Activation de la console de gestion distante IIS

Avant de poursuivre avec la configuration des serveurs Web, je vous recommande d’activer la console
IIS remote management. Celle-ci vous permettra de configurer et « manager » plusieurs serveurs IIS
depuis une seule et unique console. Pour cela référez-vous au point 5.

2.3 Création d’un site Web

2.3.1 Ajout d’une entrée DNS

Ajoutez une entrée DNS de type A correspondant au nom de votre site web :
Add-DnsServerResourceRecordA -Zonename "<zone DNS>" -Name "<Name>" -IPv4Address "<IP>"

2.3.2 Création du site

Créez ensuite votre site web (source) :
Import-Module webadministration
New-Item IIS:\Sites\<name> -bindings @{protocol="http";bindingInformation=":<port>:TestSite"} -
physicalPath <c:\test>

Note : aucun « application pool » sera créé (celui par défaut sera utilisé). Par ailleurs vous n’aurez
pas la possibilité de préciser les droits de connexion au dossier partagé tel qu’expliqué au point 2.4.1.

2.3.3 Règle pare-feu

Pour terminer, créez une règle autorisant le trafic web sur le port indiqué au point précédent :
New-NetFirewallRule -DisplayName "<Name>" -Direction Inbound -LocalPort <port> -Protocol TCP -
Action Allow





2.4 Déplacement du site web

2.4.1 Changement de répertoire

La première étape consiste à modifier l’emplacement de votre site en le faisant pointer vers le dossier
partagé créé au point 1.2. Depuis la console IIS :
 Clic droit sur votre site > Manage website > Advanced settings
 Modifiez la valeur Physical path en le faisant pointer vers le dossier partagé situé sur votre
serveur de fichier : \\SRV-FILE\<share>

 Modifiez ensuite la valeur Physical path credentials en renseignant le compte utilisateur IIS-
Website créé au point 1.1:

 Validez le tout et « recyclez » l’application pool

2.4.2 Approbation du dossier partagé

Il vous faut maintenant approuver le partage réseau contenant votre site. Pour cela exécutez les
commandes DOS suivantes sur VOS serveurs IIS :
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -m -ag 1. -url file://\\<file
server>\<share>\<folder>\* FullTrust
C:\Windows\Microsoft.NET\Framework\v4.0.30319\caspol.exe -m -ag 1. -url file://\\<file
server>\<share>\<folder>\* FullTrust



Où :
 Fileserver : nom du serveur de fichier
 Share : nom du dossier partagé contenant vos sites web
 Folder : dossier contenant votre site

Vérifiez ensuite que votre zone a bien été prise en compte :
caspol -lg

2.4.3 Autorisations .NET pour le compte IIS

Si vous utilisez les composants .NET v2 et v4 pour votre site, veuillez rajouter le compte d’accès au
dossier partagé pour le site IIS en question (point 1.1) sur les dossiers « Framework » suivants :
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Aspnet_regiis.exe -ga server\IIS-website
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Aspnet_regiis.exe -ga server\ IIS-website
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet_regiis.exe -ga server\IIS-website
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Aspnet_regiis.exe -ga server\ IIS-website

Dans le cas contraire, l’erreur du point 7.2 apparaîtra.

2.5 Configuration IIS partagée

2.5.1 Export de la configuration

Pour que d’autres serveurs puissent être intégrés à la ferme, il vous faut activer le mode de
configuration partagée. Pour cela :
 Sur la console IIS de votre serveur, cliquez sur Shared configuration




 Cliquez à droite sur Export configuration :
o Indiquez l’emplacement du dossier partagé créé à cet égard au point 1.2
o Indiquez l’utilisateur IIS-ConfigShare en cliquant sur Connect As
o Indiquez une clef de chiffrement pour la configuration

2.5.2 Activation de la configuration partagée

Il vous faut maintenant activer la configuration partagée. Pour cela :
 Cliquez sur Enable shared configuration et renseignez les informations demandées :
o Physical path : emplacement du dossier partagé de configuration créé au point 1.2
o User name : indiquez l’utilisateur IIS-ConfigShare
o Password : son mot de passe associé




 La clef de cryptage créée au point 2.5.1 vous sera alors demandée. Validez pour terminer :

2.5.3 Intégration d’un nouveau serveur

Maintenant que votre configuration Web est partagée de façon sécurisée, il vous est possible
d’intégrer d’autres serveurs web. Pour cela, répétez le point 2.5.2 et :
 Redémarrez le service IIS depuis la console
 Fermez et ouvrez la console IIS

On notera que toutes les éléments propres à la configuration du serveur sont pris en compte, dont :
 Les Applications Pool
 Les sites web
 Les modes d’authentification activés ou désactivés
 Les binds (IP, nom, port, certificats …)

Note : en revanche, les états des sites ne sont pas synchronisés. Heureusement car autrement cette
configuration n’aurait aucun intérêt.

2.5.4 Vérifications des accès

Vous pouvez vérifier que les identifiants saisis sont corrects de la façon suivante :
 Sélectionnez votre site dans l’arborescence située à gauche de la console IIS
 Dans l’aparté à droite, cliquez sur Basic settings > Test settings






3. Activation du « load-balancing »

Maintenant que vos serveurs web sont opérationnels, ajoutez-les au sein d’un cluster NLB afin de
rendre hautement disponibles les sites hébergés. Pour cela je vous recommande la lecture de mon
tuto concernant la mise en place d’un cluster NLB.

Notez toutefois quel l’IP émulée par le NLB devra correspondre à l’entrée DNS pointant vers le nom
de votre site (point 2.3.1).

4. Passage en mode « Core »

4.1 Intérêts

Le mode Core permet de désactiver l’interface graphique du serveur de façon à minimiser sa surface
d’attaque. Par ailleurs, cela contribue grandement à la sécurité tout en réduisant les opérations de
maintenance ainsi que les ressources consommées. Sous Server 2008 R2, ce choix devait s’effectuer
lors de l’installation de Windows. Mais avec Windows Server 2012, il est facilement possible de
changer de mode ; l’idée générale étant de configurer son serveur en mode GUI pour ensuite le
basculer en mode Core lorsque la configuration serait prête.

A titre d’information, sachez qu’un Windows Server 2012 (virtuel) consomme après son installation
et avec les dernières mises à jour, 400 Mb sur 1 Gb d’installé. En mode Core, la mémoire RAM occupée
est réduite d’environ 45%.

4.2 Activation du mode « Core »

Import-Module ServerManager
Uninstall-WindowsFeature Server-Gui-Shell,Server-Gui-Mgmt-Infra -Restart





5. Console IIS distante

Pour rappel, l’activation de cette console permet l’administration distante d’IIS. Notez toutefois que
sa configuration est uniquement accessible depuis la console IIS locale.

5.1 Configuration des serveurs Web

5.1.1 Ajout de la fonctionnalité (PowerShell)

Ouvrez une console PowerShell sur votre serveur « pilote » et exécutez la commande suivante, en
précisant bien le nom des serveurs pour lesquels vous souhaiter activer cette fonctionnalité :
$Session=New-PsSession –ComputerName <name1>, <name2>, <name3>
Invoke-Command –Session $Session –ScriptBlock {Import-Module ServerManager}
Invoke-Command –Session $Session –ScriptBlock {Add-WindowsFeature Web-Mgmt-Service}

5.1.2 Ajout de la fonctionnalité (GUI)

Vous pouvez également ajouter cette fonctionnalité graphiquement sur vos serveurs. Pour cela :
 Connectez-vous sur votre serveur (localement ou à distance)
 Lancer le Server Manager > Manage > Add roles and fetaures wizard
 Sélectionnez la fonctionnalité Web Server (IIS)
 Et ajoutez le Management Service

5.1.3 Activation du service (GUI)

Il vous faut maintenant configurer le service. Pour cela, connectez-vous manuellement sur chaque
serveur est effectuez les configurations suivantes :
 Lancez la console Internet Information Services (IIS) Manager

 Cliquez sur Management Service



 Cliquez sur Enable remote connections et renseignez les informations demandées :
o IP address: indiquez l’IP qui sera en écoute pour ce service
o Port : choisissez un port de votre choix (par défaut 8172)
o SSL certificate : vous pouvez utiliser le certificat par défaut ou en ajouter un
o IP address restrictions : passez le champ à Deny et ajoutez l’adresse IP de votre
serveur pilote

 Une fois votre configuration terminée, cliquez sur Apply dans le menu à droite pour valider
votre configuration, puis sur Start pour démarrer le service :




5.1.4 Création d’une règle de pare-feu

Si vous optez pour la configuration par défaut (déconseillé), la règle suivante sera automatiquement
activée pour autoriser les communications TCP sur le port 8172 :

Pour créer une règle de pare-feu afin d’autoriser les connexions entrantes sur un port différent de
celui utilisé nativement, exécutez la commande suivante :
$Session=New-PsSession –ComputerName <name1>,<name2>
Invoke-Command –Session $Session –ScriptBlock {New-NetFirewallRule -DisplayName “IIS
management” -Direction Inbound –Protocol TCP –LocalPort <port> -Action allow –Profile
Private,Domain}

5.1.5 Démarrage automatique du service

Passez ensuite le mode de démarrage du service en automatique (manuel par défaut) en exécutant
la commande DOS suivante :
$Session=New-PsSession –ComputerName <name1>,<name2>
Invoke-Command –Session $Session –ScriptBlock {set-service wmsvc -startuptype automatic}

5.2 Connexion aux serveurs Web

5.2.1 Ajout de la console IIS

Maintenant que tous les serveurs Web de votre ferme ont le service activé et configuré, il vous faut
installer la console IIS sur le serveur qui pilotera votre ferme. Pour cela, exécutez la commande
PowerShell suivante :
Add-WindowsFeature Web-Mgmt-Tools,Web-Mgmt-Console

5.2.2 Ajout d’un serveur web

Ajoutez pour terminer les serveurs web que vous souhaitez piloter. Pour cela :
 Ouvrez la console IIS Manager et cliquez sur Connect to a server




 Renseignez les informations demandées :
o Server name : <nom serveur> :<port>

o User name : <domaine>\<user>
 Acceptez l’alerte de certificat
 Indiquez un nom pour cette connexion

 Répétez ensuite cette action pour tous vos serveurs Web



6. Application Request Routing (ARR)

6.1 Installation

L’Application Request Routing (ARR) vous permet d’implémenter des fonctionnalités avancées de
haute-disponibilité et de répartition de charge sur vos serveurs IIS (source).

Attention ! ARR ne supporte pas la configuration partagée activée au point 2.5

6.1.1 Installation automatique

Téléchargez le « Web installer » à partir du lien suivant. Lancez-le afin qu’il installe automatiquement
les logiciels requis :

Si tout est bon :




6.1.2 Installation manuelle

Pour installer ARR en mode en hors-ligne, vous devrez installer dans l’ordre les composants
suivants (source) :
 Web Farm Framework (v1): téléchargement ici
 External Cache (v1): téléchargement ici
 URL rewrite (v2): téléchargement ici
 ARR (v2.5): téléchargement ici

6.1.3 Nouveautés

Les services suivants sont rajoutés par l’ARR :
 Application Requet Routing Cache
 URL Rewrite
 Web Plateform Installer

L’aparté Server Farm est également disponible :

6.2 Création d’une ferme

 Clic droit > Create server farm




 Indiquez le nom des serveurs web membre de la ferme :

 Dirigez-vous ensuite vers la ferme créée et remarquez les nouvelles options disponibles :




7. Erreurs

7.1 503 Service unavailable

Le problème suivant se pose dès lors que vous utilisez une configuration partagée. En effet, lorsque
le serveur de fichier hébergeant la configuration IIS n’est plus joignable, le système va essayer de la
recharger à partir d’une configuration locale. A ce stade :
 des erreurs W3SVC seront enregistrées

 une erreur 503 Service Unavailable sera présente sur votre site

Solution : exécutez un IISreset sur chacun de vos serveurs pour relancer vos sites. Il existe quelques
solutions parant à cette problématique :
 Mise en place d’un partage DFS
 Mise en place d’un partage SMB v3 hautement disponible
 Configurer les « Offlines files » (sources)

7.2 Current identity does not have write access […]




Cette erreur se produit si votre site web fait appel aux composants .NET tout en utilisant un dossier
partagé (point 2.4). Pour corriger ce problème, suivez les indications du point 2.4.3.

7.3 Server manager : WebServer.Events.xml

Pour corriger cette erreur, supprimer la clef EventQuery située dans la ruche suivante :
HKLM\Software\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\Web-Server

7.4 Cannot write configuration file […]

Si vous pilotez vos serveurs IIS à partir d’une console distante (point 5) tout en utilisant une
configuration partagée (point 2.5), l’erreur ci-dessous se produira si par exemple vous souhaitez
arrêter/démarrer votre serveur :

Cette erreur est provoquée en raison de l’absence de droits sur le dossier partagé de la configuration
d’IIS. En effet, lorsque vous gérer à distance vos serveurs IIS sur configuration partagée, ce n’est pas
votre compte qui est utilisé, sinon le compte de service exécutant le « Web Management Service »
(point 5).

Solution : ajouter le compte « Local Service » en lecture/écriture sur le dossier partagé de la
configuration partagée IIS. Vous pouvez également modifier le compte de service « Web
Management Service » avec un compte de service et ajoutant ce compte sur ce dossier partagé




N’hésitez pas à m’envoyer vos commentaires ou retours à l’adresse suivante :
m.decrevoisier A-R-0-B-A-5 outlook . com

Soyez-en d’ores et déjà remercié

Sign up to vote on this title
UsefulNot useful