IIS AAR-URL Rewrite for reverse proxy - comment envoyer un hôte HTTP
essaie d'utiliser AAR comme un mandataire inversé devant plusieurs serveurs IIS.
-
une adresse ip publique attribuée au serveur exécutant IIS /AAR
-
les règles de réécriture d'URL sortantes sont configurées pour rediriger vers l'une des plusieurs serveurs d'arrière-plan selon le nom d'hôte.
fonctionne un peu, mais retourne toujours le site par défaut des serveurs back end (pas le nom d'hôte (HTTP_HOST) ne passe donc pas du serveur proxy au serveur d'arrière-plan.
(j'ai vérifié le contournement du proxy inverse en éditant des hosts et le serveur de back end renvoie le bon site lié à l'en-tête de l'hôte)
ceci est un exemple de la règle (192.168.0.99 est le serveur interne, site.myco.com is the hostname)
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://192.168.1.99/{R:1}" />
</rule>
</rules>
</rewrite>
ont essayé de mettre des variables sever ainsi
<!-- Guessing server.myco.com is hard coded -->
<serverVariables>
<set name="HTTP_HOST" value="server.myco.com" />
</serverVariables>
<!-- Guessing picked up dynamically from incoming request host header -->
<serverVariables>
<set name="HTTP_HOST" value="{HTTP_HOST}" />
</serverVariables>
mais hélas renvoie toujours la reliure par défaut - des idées?
2 réponses
Ce post a la réponse - Modifier les en-têtes avec IIS7 Demande d'Application de Routage
Besoin d'activer preserveHostHeader - ne peut pas voir comment vous le faire dans l'INTERFACE utilisateur, mais cela fonctionne
exécutez ceci de la ligne de commande à la mise à jour Machine/webroot/apphost config
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost
à mon avis, votre serveur ne vous permet pas de changer la variable HTTP_HOST
lorsque vous réécrivez l'URL.
au niveau du site Web où la réécriture de L'URL est appliquée:
puis cliquez sur le lien Add...
sur l'onglet droit et ajoutez votre variable HTTP_HOST
: