Présentation IIS ARR
ARR est un complément (plugin) qui s’installe sur IIS et qui permet de transformer le serveur Web de Windows en Reverse Proxy.
ARR est un complément gratuit qui s’installe sur un service IIS et qui permet :
- Faire du routage HTTP(S)
- Répartition de charge (Load Balancing)
- Décharge SSL (Offloading SSL).
- CDN (cache)
Exemple de déploiement avec IIS/ARR :
Prérequis
Pour la mise en place d’ARR il vous faut :
- Des services Web à publier (IIS/Apache/nginx…)
- Un serveur avec IIS d’installé.
Installation d’ARR
Depuis la console IIS, lancer Web Platform Installer.
Dans la zone de recherche entrer ARR 1 et appuyer sur Entrée au clavier.
Sélectionner Routage des demandes d’applications 3.0 Bêta 1 et appuyer sur le bouton Ajouter 2.
Cliquer sur le bouton Installer 1.
Cliquer sur J’accepte 1.
Patienter pendant l’installation.
Les 3 composants nécessaires à l’installation et au fonctionnement d’ARR sont installés, cliquer sur Terminer 1 pour fermer l’assistant d’installation.
Relancer la console IIS, les composants d’administration d’ARR 1 devraient être disponibles.
Configuration : Routage simple
Dans cette partie nous allons mettre en place un routage simple du protocole HTTP. Les requêtes HTTP arriveront sur le serveur ARR et celui-ci les transférera vers le serveur WEB qui héberge le(s) site(s).
La première étape est de créer une Ferme de serveur qui correspond à un ou plusieurs serveurs Web qui héberge l’application et ensuite de modifier la règle de réécriture pour le routage vers la bonne ferme en fonction de l’url.
Sélectionner Server Farm 1, faire un clic droit dessus et cliquer sur Create Server Farm … 2 ou passer par le menu Actions.
Entrer le nom de la Server Farm 1 (par convention le nom DNS d’accès), cocher la case Online 2 si ce n’est pas fait et cliquer sur Suivant 3.
Entrer le nom ou l’IP des serveurs qui héberge site 1 et cliquer sur Add 2.
Une fois le(s) serveur(s) ajouté(s) 1 cliquer le bouton Terminer 2.
Cliquer sur Oui 1 pour confirmation la création automatique de règle de réécriture (routage).
Les règles automatiques s’appuie sur le nom de la ferme pour faire la réécriture. Nous allons voir après comment modifier les règles pour les fiabilités.
La première « ferme de serveur » 1 est créée et disponible dans l’interface d’administration IIS.
Développer le dossier Server Farms 1 et sélectionner la ferme qui vient d’être créée 2. Dans la zone centrale 3 se trouve les actions disponibles.
Nous allons maintenant regarder de plus près les règles de réécriture.
Cliquer sur Routing Rules 1.
Dans le menu Actions cliquer sur Url Rewrite … 1.
On voit la règle de transfert créer automatiquement 1. Faire un double clic dessus pour afficher les détails de la règle.
Dans le cas où un seul serveur Web héberge l’ensemble des sites internets sur des vhosts (sites), il serait possible de faire une seule règle en gardant l’entête de l’hôte.
A : on voit ici que le trafic arrivant sur le serveur est transféré et non réécrit comme on peut le voir dans la liste des règles. On va maintenant faire en sorte de limiter le transfert à l’url lab.rdr-it.intra. Cliquer sur Conditions 1.
Cliquer sur le bouton Ajouter 1. Dans la nouvelle fenêtre qui s’ouvre, entrer la variable server que l’on va tester ici {HTTP_HOST} 2, dans le champ modèle 03 saisir le (sous-)domaine à traiter et cliquer sur OK 4 pour enregistrer la condition.
A : la condition est ajoutée, cliquer sur Appliquer 1 pour la prise en compte.
Pour les besoins du tutoriel, j’ai ajouté un second site arr-demo.rdr-it.intra qui passe par ARR et qui est hébergé sur le même serveur IIS.
Les enregistrements DNS de type A des sites doivent pointer sur le serveur ARR.
Lancer un navigateur internet et aller sur les sites.
Pour valider le passage dans ARR, il est possible de le vérifier au niveau des logs IIS qui se trouve dans C:/inetpub/LogFiles/W3SVC1
(par défaut). Le passage par ARR peut aussi être surveillé au niveau du monitoring 1 sur la ferme avec une page dédiée aux statistiques 2.
Configuration : Décharge SSL
Le but de la décharge SSL est de publier un site à l’aide d’ARR en HTTPS et de faire communiquer le serveur ARR avec le serveur web en HTTP. Cette solution permet de décharger le serveur Web du cryptage.
Installation du certificat sur le serveur ARR
ARR étant lié à un seul site (Défault Web Site) sur IIS, si plusieurs domaines doivent être pris en charge, il est nécessaire d’avoir un certificat de type SAN.
Pour le tutoriel, j’ai généré un certificat autosigné en *.rdr-it.intra pour couvrir l’ensemble des sous-domaines. Vous trouverez ici un générateur de certificat autosigné.
Aller à la racine de la console IIS 1 puis sur Certificats de serveur 2.
Cliquer sur Importer 1 dans le menu Actions. Sélectionner le certificat au format pfx 2, entrer la clé privée (mot de passe) 3, choisir le magasin de stockage 4 (Hébergement Web) et cliquer sur OK 5.
Le certificat est importé 1>.
Afficher la liste des sites disponibles sur le serveur en cliquant sur le dossier Sites 1, sélectionner le site par défaut 2, faire un clic droit dessus et cliquer sur Liaisons … 3.
Cliquer sur le bouton Ajouter 1.
Type de liaison choisir https 1, sélectionner le certificat 2 puis appuyer sur le bouton OK 3.
La liaison HTTPS est ajoutée 1. Quitter en cliquant sur Fermer 2.
Configuration des règles de réécriture – routage
Aller sur la page de gestion des règles de réécriture.
Ajouter une nouvelle règle depuis le menu Action en cliquant sur Ajouter des règles 1, choisir Règle vide 2 puis cliquer sur OK 3.
Nommer la règle 1, cliquer sur Conditions 2 pour développer l’option, ajouter les deux règles 3 (la première vérifie que l’appel est fait en https et le second limite au domaine). Dans la partie Action, sélectionner le schéma 4 puis la batterie de serveurs 5 et cliquer sur Appliquer 6.
Retourner sur la liste des règles, elle est ajoutée 1.
Lancer un navigateur et accéder au site en https.
Comment on peut le voir ci-dessous, il n’y a pas de liaison SSL sur le site IIS A>.
Pour forcer l’accès en HTTPS (SSL), il est nécessaire d’ajouter avant la règle de décharge, une règle qui fait une redirection 301 HTTP vers HTTPS.
Configuration : Activation du cache
Une des fonctionnalités disponibles avec ARR est système du cache,qui permet d’économiser des requêtes sur les serveurs Web.
Sur le serveur créé un dossier pour stocker le cache.
Depuis la console IIS, cliquer sur Application Request Routing 1.
Depuis le menu Actions cliquer sur Add Drive… 1.
Saisir le chemin du dossier 1, définir une limite 2 puis cliquer sur OK 3.
Le stockage pour le cache est déclaré 1.
Aller sur un des sites déclarés dans la ferme 1 et cliquer sur Caching 2.
Si ce n’est pas le cas, activer le cache en cochant la case 1 Enable disk cache et cliquer sur Appliquer 2.
Actualiser le site où le cache est activé.
Ouvrir le dossier à l’endroit où le cache est écrit, vous devriez avoir des fichiers A.