jochen: internes Server-Mapping von 80er auf 81 Port

hallo, folgende Frage:
Üblicherweise erlauben Firmen ja (mit Recht) HTTP-Clients nur über den 80er Port herauszugehen.
Auf einem WinServer2003 ist der IIS sowie eine zweiter HTTP-Server.
Beide Server müssen betrieben werden, da sie bzw. die entsprechenden Applikationen nicht kompatibel sind. Ein Server läuft daher auf dem 80er Port, ein zweiter jedoch auf z.B. dem 81er Port.

Nun meine Frage:
Wie kann ich erreichen, daß eine Web-Client eine Anfrage stellt und auf dem Server ein Mapping (keine umleitung, da dann ja Port81) in der Art erfolgt, daß der HTTP-Request intern 1:1 auf den 81er Port gelenkt und die Antwort wieder vom 81er auf den Standard 80er Port gemappt/gelenkt und dort an den Client ausgegeben wird.

Kennt jemand ein Tool oder einen Weg eines solchen "Port zu Port Übersetzers"?

Danke für eine Antwort
(ich habe diesen Themenbereich gewählt, da ein DNS-Bereich nicht exisitert...)

  1. Moin!

    Auf einem WinServer2003 ist der IIS sowie eine zweiter HTTP-Server.
    Ein Server läuft daher auf dem 80er Port, ein zweiter jedoch auf z.B. dem 81er Port.

    Wie kann ich erreichen, daß eine Web-Client eine Anfrage stellt und auf dem Server ein Mapping (keine umleitung, da dann ja Port81) in der Art erfolgt, daß der HTTP-Request intern 1:1 auf den 81er Port gelenkt und die Antwort wieder vom 81er auf den Standard 80er Port gemappt/gelenkt und dort an den Client ausgegeben wird.

    Es gibt verschiedene Lösungen.

    1. Statt zwei unterschiedliche Ports auf derselben IP kannst du auch denselben Port auf zwei unterschiedlichen IPs (und damit (Sub-)Domainnamen) einrichten. Geht auch auf derselben Maschine (eine Netzwerkkarte kann mehr als eine IP haben).

    2. Ein interner Proxy hilft auch. Der sitzt dann auf Port 80 und fragt je nach URL beim einen oder anderen Server an (die auf Port 81 und 82 sitzen).

    3. Ein Proxymodul im Port-80-Server hilft auf die gleiche Weise: Seinen Teil beantwortet der Server direkt, den Rest leitet er an den zweiten Server weiter.

    4. Natürlich kann man mit Network Address Translation auch eine Menge machen, das wäre im Endeffekt dann aber wieder Punkt 1, weil du ja zwei IPs brauchst, um die Anfragen für den einen oder anderen Port 80 zu unterscheiden. Nur wird die Unterscheidung der IPs eben vom NAT-Router gemacht, nicht vom Server selbst.

    (ich habe diesen Themenbereich gewählt, da ein DNS-Bereich nicht exisitert...)

    DNS hat damit erstmal absolut nichts zu tun.

    - Sven Rautenberg

    1. Vielen Dank für die Antwort,
      also zwei IP's geht nicht, da es eine DSL-Anbindung ist, sorry, diese hätte ich zum besseren Verständniss erwähnen können...
      NAT geht aus diesem Grund natürlich auch nicht.

      Aber die Idee mit dem Proxy hört sich interessant an.
      Üblicherweise bringe ich Proxy immer mit dem Zwischenseichern von Content innerhalb einer Firma in Verbindung (d.h. eingehender Content wird gecasht und aus Securitygründen vom internen Netz getrennt).

      Hier ist der Fall ja andersherum.
      Eine eingehende Anfrage wird in den Proxy geleitet und dort - wie Du schreibst - abhängig von der Adresse (welche Adresse, der Adress-Zeiger des externen DNS zeigt ja nur auf die einzige IP) auf verschiedene Ports verteilt.

      Ich würde mich über ein/zwei Links zu diesem konkreten Thema freuen, hat jemand solche. Und welche softwaremäßige Lösung kann vorzuschlagen werden? Es ist (wie DSL vermuten lässt) natürlich keine Hochlastangelegeneheit...

      Vielen Dank für die Informationen.

      jochen

      1. Moin!

        Ich würde mich über ein/zwei Links zu diesem konkreten Thema freuen

        Dein Suchwort ist "Reverse Proxy". Im Gegensatz zum normalen Proxy, bei dem derselbe Client Anfragen an verschiedene Server stellt, werden beim "revers proxy" Anfragen von verschiedenen Clients an denselben Server gestellt.

        "Proxy" steht dabei für einen Server, welcher Anfragen entgegennimmt, dann seinerseits diese (oder modifizierte) Anfragen absendet, und das Ergebnis dann an den anfragenden Client zurückgibt. Dabei _kann_ er das Ergebnis für später zwischenspeichern ("caching proxy"), muß es aber nicht.

        - Sven Rautenberg