6 votes

IIS 7 Reverse Proxy basé sur le nom de domaine hôte ?

Comment configurer les fonctions ARR et URL Rewrite d'IIS 7.0 pour que le proxy inverse soit basé sur un hôte.

Par exemple :

http://website1.mydomain.com gets routed internally to internalserver\website1

http://website2.mydomain.com gets routed internally to internalserver2\website2

http://website3.mydomain.com gets routed internally to internalserver2 (default website)

Pour information - Le DNS public website1.mydomain.com et le reste pointent tous vers l'IP publique de mydomain.com.

Notez qu'il ne s'agit pas toujours du même serveur. Il y a plusieurs serveurs web à l'intérieur du pare-feu et un serveur web par défaut dont les ports 80 et 443 sont exposés à l'extérieur. J'ai une seule adresse IP et un seul nom de domaine. Ainsi, puisque j'ai plusieurs serveurs web à l'intérieur de mon pare-feu, je dois acheminer les sous-domaines des noms d'hôtes vers différents serveurs web à l'intérieur.

Toute démarche détaillée serait d'une aide précieuse.

6voto

rmukhopadhyay Points 243

Puisque vous vous basez sur le nom de domaine plutôt que sur l'IP (ce qui est plus facile dans cette situation), voici la façon la plus directe de procéder :

  • Assurez-vous que votre serveur externe a des liens pour les trois sites sur la base de l'en-tête de l'hôte (website1.mydomain.com, etc.). Vous pouvez laisser l'adresse IP comme (All unassigned). Vous l'avez probablement déjà fait. -- Ce que je veux dire, c'est qu'il faut ajouter une liaison au premier site qui est "website1.mydomain.com", et aux deux autres sites de la même manière. Voici un walkthrough sur les fixations .

  • créer 2 fermes Web en ARR sur le serveur ARR. L'une sur internalserver et l'autre sur internalserver2. Utilisez les IP primaires de ces serveurs. Vous pouvez configurer 3 fermes Web différentes si vous voulez des contrôles de santé uniques pour chaque site Web. Il est possible que deux d'entre elles pointent vers le même serveur. -- Étapes : Créez une nouvelle ferme de serveurs appelée InternalServer et ajoutez-y un seul serveur, qui est "internalserver". Ensuite, créez une autre ferme de serveurs appelée InternalServer2, et ajoutez-y simplement "internalserver2".

  • à la dernière étape de l'assistant lors de la création du site, lorsqu'il vous demande si vous voulez qu'ARR crée une règle pour vous, ne dites " oui " que la première fois. Prenez note de la règle qu'il crée afin d'en tirer des leçons. Ensuite, supprimez-la. Vous voulez gérer vos propres règles. -- Je vous expliquerai les règles à l'étape suivante.

  • vous devez ensuite définir 3 règles URL Rewrite au niveau global (nœud du serveur IIS, pas le nœud du site Web). URL = .*, utilisez une condition avec {HTTP_HOST} pour votre nom de domaine, et l'action devrait être dirigée vers la webfarm correspondante. -- Voici un exemple Introduction à la réécriture d'URL . Suivez ces étapes et entrez une règle comme celle qui suit :

Exemple de réécriture d'URL :

<rule name="site1" patternSyntax="ECMAScript" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="^website1\.mydomain\.com$" />
  </conditions>
  <action type="Rewrite" url="http://InternalServer1/{R:0}" />
</rule>

1voto

josy Points 21

Si vous utilisez un SonicWALL, vous pouvez le faire :

  1. Créer un objet Réseau>Adresse de type FQDN sur le WAN.
  2. Ajoutez une politique Network>NAT pour traduire cet objet d'adresse vers le serveur web interne.
  3. Ajoutez la règle sous Pare-feu>Règles d'accès pour autoriser le trafic HTTP vers chaque serveur.

Si vous utilisez un autre pare-feu, voyez si vous pouvez faire quelque chose de similaire avec le vôtre.

0voto

Hyppy Points 15356

Puisque tout est sur le même serveur, pourquoi ne pas créer trois sites Web distincts avec des liens vers les sous-domaines spécifiés ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X