osx06
Goto Top

IIS: Interne "Weiterleitung" von Inhalten zwischen zwei Servern

Ein Server am Internet, ein zweiter nur im LAN: Internetbenutzer soll über ersteren Inhalte vom zweiten angezeigt bekommen.

Zunächst mal das Szenario:
Ich habe zwei Windows Server 2003 mit IIS, auf denen unterschiedliche Webprojekte laufen.
Der eine Server A ist ans Internet angeschlossen und bedient den Port 80 meiner statischen IP.
Der andere Server B ist nur übers LAN zu erreichen und beinhaltet ein Intranet-Portal.
Beide Server sind über LAN miteinander verbunden.

Auf Server B läuft jetzt eine Website, die auch übers Internet erreichbar sein soll.
Ich würde jetzt gerne folgendes machen:

Auf Server A eine Art "Virtuelles Verzeichnis" o.ä. einrichten, das bspw. unter der Adresse 214.123.0.23/verzeichnis aus dem Internet aufgerufen wird. Server A soll nun irgendwie diese Anfrage an Server B weiterleiten und dann das Ergebnis wieder dem Internet-Benutzer im Browser ausgeben.

Natürlich könnte man - unter einer weiteren IP, einem anderen Port - Server B auch im Internet verfügbar machen und dann einen ganz normalen Link setzen. Aber das ist finanziell und technisch nicht möglich und auch wegen der Intranet-Geschichte prinzipiell nicht gewünscht. Es soll so aussehen, als ob wirklich das, was der Internet-Benutzer aufruft, auch auf Server A läuft, obwohl es in Wirklichkeit auf Server B läuft, der aber nicht direkt am Internet hängt und auf den der Internetbenutzer eigentlich keinen Zugriff hat.

Ich weiß, es klingt sehr komplex, aber könnt ihr mir weiterhelfen?

Ganz herzlichen Dank im Voraus!
Gruß

Content-ID: 30132

Url: https://administrator.de/forum/iis-interne-weiterleitung-von-inhalten-zwischen-zwei-servern-30132.html

Ausgedruckt am: 23.12.2024 um 07:12 Uhr

Dani
Dani 10.04.2006 um 20:27:13 Uhr
Goto Top
Hi,
ist eigentlich kein Hexenwerk. Geh auf Server A in die IIS Verwaltung. Erstell in der (z.B. Standardwebsite ein virtuelles Verzeichnis. Als Pfad gibst du einfach mal C:\ ein.

Nun gehst auf den Server B. Dort gibst du den Order, den du im Internet verfügbar haben möchtest, als versteckte Freigabe frei.

Dann gehst du wieder bei Server A in die Eigenschaften des virtuellen Verzeichnis und klickst auf die Kategorie "". Dort stellst du auf "" um und gibst den UNC Pfad an ( \\SERVER B\FREIGABE) an.

!!HINWEIS!!
Am besten du lässt zum testen, den Benutzer Jeder bei Freigabe auf SERVER B vorhanden. Das gleiche bei der Ordersicherheit der Freigabe.

Hoffe, habe mich richtig ausgedrückt.


Gruß
Dani
OSx06
OSx06 10.04.2006 um 20:59:36 Uhr
Goto Top
Danke für die schnelle Antwort!

Gute Idee, hat mir erst voll gefallen. Hätte prinzipiell auch funktioniert, scheiterte aber leider daran, dass für das Virtuelle Verzeichnis (ist eigentlich logisch, wie mir dann auch auffiel) nur UNC-Pfadangaben zugelassen sind.

Ich beschreib's mal konkret:
Auf Server B läuft Exchange 2003 mit dem Outlook Web Access, das im IIS als eigene Webanwendung o.ä. läuft (also nicht nur als HTML-Files in einem Verzeichnis, das man freigeben könnte).
Die Leute nutzten das Outlook Web Access bisher eigentlich nur im LAN.
Jetzt wäre es aber passabel, wenn sie es auch von unterwegs nutzen könnten über's normale Internet via Server A, der schon entsprechend geschützt ist mit speziellen Accounts usw.
Es sollte nun also ein Außendienstler in seinen Browser www.domain.de/outlook eingeben können und Server A reicht ihm quasi die Seiten vom Outlook Web Access von Server B durch.

Hast du noch einen Vorschlag?

Danke & Gruß
Dani
Dani 10.04.2006 um 21:06:52 Uhr
Goto Top
Hi,
dann hätt ich noch ne andere Lösung. Hab's aber noch nie ausprobiert. Erstelle auf dem Server A folgenden Datei:

Name: owa.php

<?php

echo <iframe src='http://SERVERB/exchange/' FRAMEBORDER='0' NAME='owa' height='HÖHE' width='BREITE IN PX ODER PROZENT'></iframe>";  

?>
Mehr zu Inline Frames: http://www.drweb.de/html/inline_frames.shtml
Es müsste nun das OWA in der Seite drin erscheinen!


Gruß
Dani
OSx06
OSx06 10.04.2006 um 21:22:56 Uhr
Goto Top
Tjaja... das Problem ist: Vom externen Internetbenutzer ist der Server B via http://SERVERB nicht zu erreichen (und das ist gut so!!) face-wink
Diese Lösung würde also nur im LAN klappen, wo dann das OWA als Inlineframe erscheinen würde, weil die Framegeschichte und damit auch der konkrete Ladevorgang ja, wenn ich das richtig sehe, auf Clientseite passiert.

Das PHP-Teil müsste sich die Daten also schon richtig schnappen und schon auf Serverseite VOR der Ausgabe zum Client ersetzen. Das geht irgendwie, ich weiß nur nicht mehr richtig, weil ich in PHP nicht mehr so richtig drin bin.
Gab's da nicht sowas wie "include" o.ä.?

Danke & Gruß
Dani
Dani 10.04.2006 um 21:42:01 Uhr
Goto Top
Hi,
doch include() gibts es:

include('PFAD\DATEI.TXP');  


Gruß
Dani
OSx06
OSx06 10.04.2006 um 21:56:34 Uhr
Goto Top
Ahhh genau. Okay. Und das klappt dann, wenn ich einfach
include('http://serverB/outlook');
schreibe? Wird das dann auf Serverseite schon alles ausgeführt?
Weil wie gesagt, Server B ist für den Client im Internet nicht erreichbar, d.h. es darf diesbezüglich nichts auf Clientseite ausgeführt werden.

Aber halt...
Schreibt das include() auch alle Links auf der inkludierten Seite um bzw. leitet sie weiter? Nee oder?
Weil dann klappt's ja schon nicht mehr, wenn der Benutzer den ersten Link anklickt und der dann wieder auf serverBirgendwas verweist...

Problem problem...
Ich denke, man müsste sich das mal so vorstellen, dass der Server A alle Anfragen an Server B durchreicht und die Ergebnisse wieder an den Client weitergibt. Wie bei Stille Post sozusagen, nur dass nix verloren gehen soll. face-wink

Ginge es irgendwie, ein Virtuelles Verzeichnis auf Server A zu erstellen, das eigentlich eine Webanwendung von Server B beinhaltet?
Bzw. dass sich Server A und Server B ein Virtuelles Verzeichnis teilen, das aber nur auf einem der beiden (Server B) liegt?
Oder dass Server A und Server B auf eine Webanwendung zugreifen, die aber nativ auf Server B ausgeführt wird?

Ist ziemlich komplex und das da oben nur mal theoretische Überlegungen, weil ich für keine davon eine praktische Lösung wüsste.

Bitte helft mir!!

Danke & Gruß
Dani
Dani 11.04.2006 um 18:49:37 Uhr
Goto Top
Hi,
wie wärs wenn du das OWA auf einen extra Port leitest. Dazu müsstest du auf Server B ein neues Web anlegen und die Exchangedaten aus dem Standardweb kopieren. Dann einen anderen Port angeben.

Auf Server A solltest du dann noch eine Portweiterleitung anrichten. Wie man das genau umsetzen kann. Sorry...


Gruß
Dani