Proxy inverse – Modèle de règle
par Ruslan Yakushev
Les modèles de règle sont utilisés pour fournir un moyen simple de créer une ou plusieurs règles de réécriture dans un scénario donné. Le module de réécriture d’URL 2 comprend plusieurs modèles de règle pour certains scénarios d’utilisation courants. Par ailleurs, l’interface utilisateur du module de réécriture d’URL fournit un framework permettant de raccorder des modèles de règle personnalisée. Cette procédure pas à pas vous guide tout au long de l’utilisation du modèle de règle « Proxy inverse » inclus dans le module de réécriture d’URL. Pour en savoir plus sur la configuration du proxy inverse avec le module de réécriture d’URL IIS et IIS Application Request Routing, consultez Proxy inverse avec le module de réécriture d’URL v2 et Application Request Routing.
Prérequis
Cette procédure pas à pas nécessite les prérequis suivants :
- IIS 7 ou version ultérieure avec le service de rôle ASP.NET activé.
- Module de réécriture d’URL 2.0 installé.
- IIS Application Request Routing installé.
Création de l’exemple de site web
Par souci de simplicité, le scénario de proxy inverse que vous utilisez dans cette procédure pas à pas est implémenté sur un seul serveur, avec le « site web par défaut » IIS agissant comme un site de proxy inverse et une application de contenu hébergée dans des sites web IIS distincts sur le même serveur.
Pour créer l’exemple de site web de contenu :
Créez un dossier appelé « contentsite » dans le dossier suivant :
%SystemDrive%\inetpub\ folder.
Créez un site web IIS appelé « contentsite » qui pointe vers le dossier correspondant sous
%SystemDrive%\inetpub\
. Utilisez le port 8081 pour le site.
Vous pouvez utiliser les commandes suivantes pour créer les sites :%windir%\System32\inetsrv\appcmd.exe add site /name:"contentsite" /bindings:http/*:8081: /physicalPath:"%SystemDrive%\inetpub\contentsite
Créez un fichier nommé default.aspx dans le dossier suivant :
%SystemDrive%\inetpub\contentsite
Copiez le balisage ASP.NET suivant, collez-le dans le fichier et enregistrez le fichier en tant que default.aspx :
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Reverse Proxy Test Application</title> </head> <body> <h1>Reverse Proxy Test Page</h1> <p>Requested URL path is <%= Request.ServerVariables["SCRIPT_NAME"] %></p> <p><a href="http://<%= Request.ServerVariables["HTTP_HOST"] + Request.ServerVariables["SCRIPT_NAME"] %>">Here</a> is the link to this page.</p> </body> </html>
Pour vérifier que le site fonctionne correctement, ouvrez un navigateur web et demandez les URL suivantes :
http://localhost:8081/default.aspx
Générer des règles de trafic entrant et sortant à partir d’un modèle de proxy inverse
Le modèle de règle « Proxy inverse » peut être utilisé pour générer une règle de réécriture de trafic entrant servant à proxyser les requêtes HTTP vers un autre serveur. Si vous le souhaitez, le modèle peut également créer une règle de réécriture de trafic sortant qui peut corriger les noms d’hôte dans les URL des liens à l’intérieur des réponses HTML. Dans l’exemple décrit dans cette procédure pas à pas, le nom d’hôte du serveur proxy est localhost et le nom d’hôte du serveur de contenu est localhost:8081. L’application web sur le serveur de contenu génère un lien dans la réponse HTML qui utilise un nom d’hôte interne, par exemple http://localhost:8081/default.aspx
. La règle de trafic sortant corrige ce lien pour qu’il utilise le nom d’hôte du proxy, par exemple http://localhost/default.aspx
.
Pour créer les règles à partir du modèle de règle, suivez ces étapes :
- Dans le Gestionnaire IIS, sélectionnez le « site web par défaut » dans l’arborescence située à gauche.
- Ouvrez la vue de la fonctionnalité Réécriture d’URL.
- Dans la vue de la fonctionnalité Réécriture d’URL, sélectionnez l’action « Ajouter une ou plusieurs règles... », puis sélectionnez le modèle « Proxy inverse » :
- Dans la boîte de dialogue « Ajouter des règles de proxy inverse », entrez les éléments suivants :
Nom du serveur ou adresse IP où les requêtes HTTP sont transférées : localhost:8081
Cochez la case « Réécrire les noms de domaine des liens dans les réponses HTTP » et entrez :
À partir de : localhost:8081
Vers : localhost
- Cliquez sur OK. Les règles de trafic entrant et sortant sont créées :
Test du proxy inverse
Pour tester que les règles de réécriture générées par le modèle de règle fonctionnent correctement, ouvrez un navigateur web et envoyez une demande à http://localhost/default.aspx
. Le « site web par défaut » IIS reçoit cette demande et la route vers http://localhost:8081/default.aspx
conformément à la règle de réécriture de trafic entrant. Quand la réponse HTTP est renvoyée par le site web contentsite, la règle de réécriture de trafic sortant modifie l’URL du lien à l’intérieur du code HTML pour réécrire le nom d’hôte localhost:8081 en localhost :
Résumé
Dans cette procédure pas à pas, vous avez appris à utiliser le modèle de règle « Proxy inverse » pour générer des règles de réécriture afin d’implémenter une configuration de proxy inverse simple dans IIS. Ce modèle de règle peut être utilisé comme point de départ pour générer des règles de base qui peuvent être ajustées ou modifiées par la suite pour répondre aux exigences de routage et de réécriture spécifiques de votre application web.