Kann IIS so konfiguriert werden, dass Anforderungen an einen anderen Webserver weitergeleitet werden?

81

Ich habe mehrere Websites auf einem IIS 6-Server eingerichtet, die sich durch Host-Header auszeichnen.

Ich möchte jedoch, dass eine der Sites von einem Linux / Apache-Server in meinem Netzwerk bedient wird. Muss ich ein Reverseproxy-Add-In für IIS verwenden, oder gibt es eine einfache Möglichkeit, IIS anzuweisen, alle Anforderungen an einen anderen Server weiterzuleiten?

Daniel O.
quelle

Antworten:

83

Für IIS 7.5 stellt Microsoft hierfür offizielle Module zur Verfügung!

In den Site-Einstellungen erhalten Sie ein "URL Rewrite" -Symbol.

  • Öffne es
  • Rechtsklick auf die "eingehende Regelliste"
  • Wählen Sie "Regel (n) hinzufügen"
  • Wählen Sie "Reverse Proxy"

In diesem Dialogfeld können Sie den Hostnamen und den Port eingeben, an den weitergeleitet werden soll. Nach dem Hinzufügen der Regel bietet das Öffnen des Bearbeitungsdialogs weitere Anpassungsmöglichkeiten.

vdboor
quelle
8
Das ist alles in allem schön, aber die ursprüngliche Frage enthielt IIS 6, und ich bin verwirrt, dass eine für IIS 7.5 spezifische Antwort als "akzeptiert" markiert wurde. Gab es eine Lösung für IIS 6?
Tim Long
@Tim: Sie können das unten erwähnte ISAPI-Rewrite verwenden, aber abgesehen davon bin ich mit IIS6-Lösungen nicht vertraut.
vdboor
Ich habe Probleme auf meinem Win10-Computer und kann das nicht installieren. Gibt es Einschränkungen für diese Module? Muss es auf einem Server-Betriebssystem von MS ausgeführt werden? danke
fpdragon
1
Beachten Sie, dass es Probleme gibt, POST-Anfragen mit dieser Methode rückgängig zu machen
Casper Leon Nielsen,
2
@CasperLeonNielsen Könnten Sie uns bitte auf weitere Details zu den möglichen POST-Problemen hinweisen?
Jens Ehrich
17

Zu diesem Zweck verwende ich eine Drittanbieter-Software für Windows (IIS), die - neben anderen Dingen wie dem Umschreiben von URLs - diesen Job ziemlich gut erledigt: ISAPI Rewrite .

ISAPI Rewrite ist eine leistungsstarke URL-Manipulations-Engine, die auf regulären Ausdrücken basiert. Es verhält sich hauptsächlich wie mod_Rewrite von Apache, wurde jedoch speziell für den Internet Information Server (IIS) von Microsoft entwickelt. ISAPI Rewrite ist ein ISAPI-Filter, der in reinem C / C ++ geschrieben wurde und daher extrem schnell ist. ISAPI_Rewrite gibt Ihnen die Freiheit, über die Standard-URL-Schemata hinauszugehen und Ihr eigenes Schema zu entwickeln.

Suche nach "Proxying". Hier ist die Dokumentation für die RewriteProxy-Regel .

Es gibt auch ein sehr ähnliches Open-Source-Projekt: Isapi Rewrite Filter von Ionic .

splattne
quelle
Link zum Dokument für IIRF ProxyPass: cheeso.members.winisp.net/Iirf20Help/html/…
Cheeso
2
+1 - Dies funktioniert gut auf IIS 6.
Evan Anderson
Ich konnte IIRF unter Windows 2008 R2 SP1 aufgrund des folgenden Problems nicht verwenden: iirf.codeplex.com/workitem/32479
Peter K.
1

Nein, nicht unter IIS 6. Sehen Sie sich an, wie Sie nginx / ubuntu (oder sogar nginx unter Windows) als Reverse-Proxy vor Ihrem IIS6-Server verwenden. Wir mussten IIS7.5 für Reverse-Proxy-Funktionen verwenden

John Fox
quelle
-3

Dieser Microsoft KB-Artikel soll Ihnen bei der Beantwortung dieser Anfrage helfen.

Verfahren zum Umleiten von Anforderungen an eine andere Website oder ein anderes Verzeichnis:

  1. Erweitern Sie im IIS-Manager den lokalen Computer, klicken Sie mit der rechten Maustaste auf die Website oder das Verzeichnis, die bzw. das Sie umleiten möchten, und klicken Sie auf Eigenschaften.

  2. Klicken Sie auf die Registerkarte Basisverzeichnis, Virtuelles Verzeichnis oder Verzeichnis.

  3. Klicken Sie unter Der Inhalt für diese Quelle sollte stammen von auf Eine Umleitung zu einer URL.

  4. Geben Sie im Feld Weiterleiten an die URL des Zielverzeichnisses oder der Website ein.

Nick O'Neil
quelle
6
Angesichts des "Reverse-Proxy" -Tags auf der Frage des Posters, schätze ich, sucht er nach Reverse-Proxy-Funktionalität und nicht nach einer HTTP-Umleitung.
Evan Anderson
5
Der andere Server ist nicht öffentlich verfügbar, sodass dies leider nicht funktioniert
Daniel O
Das ist einfach falsch.
Tacos_Tacos_Tacos