Le reverse proxy avec MS IIS Contexte 1. Composants

Download Report

Transcript Le reverse proxy avec MS IIS Contexte 1. Composants

Le reverse proxy avec MS IIS
Contexte
L’objectif de ce projet était d’étudier et de maquetter une nouvelle fonctionnalité du serveur WEB
IIS7 de Microsoft pour faire du « reverse proxy ». La fonction URL Writing comme son nom l’indique,
permet de faire de la réécriture d’URL. Je devais donc utiliser ce module pour rendre accessible 2
applications de l’intranet hébergées sur 2 serveurs différents à partir d’une url de base commune.
Conditions : Les 2 applications devront être accessibles à partir d’une même URL de base :
http://i-lisea.reims.local
Cette URL est accessible depuis le réseau Ville et donne accès au portail des agents de Reims
métropole.
Les applications sont accessibles avec les URLS ci-dessous
-
PMB
10.150.164.16/gestion
PMB doit être accessible avec l’url : http://i-lisea.reims.local/pmb
-
ILE
10.150.164.1
ILE doit être accessible avec l’url : http://i-lisea.reims.local/ile
IIS est installé dans une VM nommée SRVIM-SPWEBI-CLONE. Le tout fonctionne sur un ESX
d’intégration.
1. Composants nécessaire pour faire du reverse proxy avec IIS
Microsoft IIS ne permet pas de faire du reverse proxy par défaut. L’installation de composants
supplémentaires est requise.
Les tests ont été réalisés avec la VM : SRVIM-SPWEBI-CLONE. (VMware ESX – Serveur intégration –
Windows 2008 R2)
L’installation des composants ne peut être réalisée automatiquement avec WebPI car les serveurs en
production ne sont pas autorisés à accéder à internet.
Liste des composants à installer :




Web Farm Framework X64
External cache X64
URL Rewrite X64
ARR X64
Prérequis :
Le rôle IIS 7.0 ou plus doit être installé.
2. Téléchargement et installation des composants
Téléchargez le Request Routing adéquat depuis les liens ci-dessous.
-
Microsoft Application Request Routing Version 2 for IIS 7 (x86) ici
Microsoft Application Request Routing Version 2 for IIS 7 (x64) ici
Avant d’installer, arrêtez les processus WAS et WMSVC en tapant les commandes suivantes dans le
cmd :
net stop was /y
net stop wmsvc /y
Exécutez le fichier .exe précédemment téléchargé et suivez les étapes de l’assistant d’installation.
3. Relancer les processus
Il n’est pas nécessaire de redémarrer la machine. Redémarrez les processus stoppés précédemment.
net start was
net start wmsvc
net start w3svc
4. Activer le proxy dans l’ARP
Gérer les serveurs – Rôles – Serveur Web IIS – Gestionnaire des services Internet (IIS)
Dans la rubrique IIS : Double-cliquez sur Application Request Routing Cache puis dans le volet de
droite, cliquez sur Server Proxy settings.
Cochez la case Enable Proxy puis appliquez.
5. Configuration de la réécriture d’URLs
La configuration des réécritures des URLs peut être réalisée en mode graphique. Cependant, Il est
plus simple de le faire en modifiants de fichier de configuration du serveur WEB.
C:\inetpub\wwwroot\wss\VirtualDirectories\80\web.config
Les règles de réécritures sont à placer en dessous de <system.webserver>.
6. Test des règles de réécriture d’URLs
Voici une capture du portail i-lsea.reims.local.
Voici des captures des applications PMB et ILE accessibles depuis 10.150.164.16/gestion et
10.150.164.1.
Les 2 règles de réécriture d’urls permettent désormais d’accéder aux applications depuis les URLS
suivantes :
http://i-lisa.reims.local/pmb et http://i-lisa.reims.local/ile
Vérification de la configuration :
Gérer les serveurs – Rôles –s Serveur Web IIS – Gestionnaire des services Internet (IIS) – sites
C’est règles de réécritures s’appliquent au site SharePoint Import.
Vous pouvez éditer et modifier les propriétés de chaque en règles en double cliquant dessus.
7. Création de règles de réécriture pour les réponses du
serveur
La réécriture d’URLs sortantes ne peut être appliquée que sur des réponses non compressées.
Si des règles de réécriture d’URLS sortantes sont appliquées alors que les réponses sont
compressées, le module de réécriture renvoi une erreur.
HTTP Error 500.52 – URL Rewrite Module Error.
Outbound rewrite rules cannot be applied when the content of the HTTP response is encoded (“gzip”).
La réécriture d’URLs sortantes est incompatible avec la compression de contenu statique.
Bilan
La réécriture d’URL fonctionne correctement avec les URLS entrantes. Ainsi nous pouvons utiliser ce
nouveau module d’IIS7 pour faire en sorte que les utilisateurs puissent accéder à différentes
ressources depuis l’extérieur à partir d’une même URL. Cette fonctionnalité bien qu’ancienne sous
Apache, permet désormais d’utiliser et de mettre en œuvre, très simplement, un processus de
modification d’URL à condition de se familiariser avec les expressions régulières.
L’analyse des urls envoyées en réponse par le serveur Web avec des outils comme Fiddler, nous a
permis de constater que certaines d’entre elles commençaient par i-pmb.reims.local. Nous avons
tenté d’utiliser le module pour réécrire les urls sortantes afin de corriger ce désagrément (même s’il
n’engendre aucun problème fonctionnel). Cependant après validation de nouvelles règles, le module
de réécriture produisait une erreur rendant le site inaccessible. Après quelques recherches, nous
avons appris que la réécriture sortante n’était pas compatible avec la compression des contenus
statiques et dynamiques. Compression que les administrateurs ne souhaitent pas désactiver.