Windows Server 2016 IIS Weiterleitung (Server Farms) auf Ubuntu Apache2 Webserver

Cinderella22

Lt. Junior Grade
Registriert
Mai 2015
Beiträge
260
Hallo zusammen,

ich habe hier ein kleines Problem bei dem ich ein bisschen Hilfe gebrauchen könnte.
Damit das Problem soweit verständlich ich versuche ich so viele Informationen wie nur möglich zu geben, damit man sich davon einen Gesamteindruck machen kann. In diesem Sinne schon mal sorry für eine evtl. Wall of Text :-).

Also kurz rum zum Setup:
Windows Server 2019 HyperV virtualisiert u. a.:

  • IIS Webserver; dieser vermittelt durch ARR bzw. Rewrite auf verschiedene Server bzw. Services (EXC, Plex etc.).
  • Ubuntu 20.04.1 Desktop Installation als Apache2 Webserver

Sinn der ganzen Weiterleitung ist, dass durch das Aufrufen der (Sub)Domain (nennen wir sie hier einfach meinetld.de) man an den entsprechen Server weitergeleitet wird. Kurzes Beispiel:

  • Ich rufe http(s)://meinetld.de auf und lande auf der auf dem IIS Server liegenden Webseite.
  • Ich rufe http(s)://exchange.meinetld.de auf und werde vom IIS auf die Exchange OWA weitergeleitet

Soweit so gut, das funktioniert auch alles soweit prima.
Nun gibt es eine Service, der nur unter einem Ubuntu bzw. Linux Server läuft. Entsprechend kommt nun die Ubuntu Maschine zum Einsatz. Dort läuft ein Apache2 Webserver in der Standardkonfiguration - d. h. Apache2 per Terminal installiert, danach nichts verändert.

Nun zum Problem.
Eingerichtet ist nun eine weitere Subdomain die dann entsprechend auf den Apache2 führen soll:

- Ich möchte https://ubuntu.meinetld.de aufrufen und auf dem Ubuntu Server landen.

Das klappt aber nicht, Fehlermeldung wie folgt:

ubuntu.meinetld.de hat Sie zu oft weitergeleitet.
ERR_TOO_MANY_REDIRECTS


Die Weiterleitung im IIS sieht wie folgt aus:

Angeforderte URL: Entspricht dem Muster
Unter Verwendung von: Platzhalter

Bedingungen:
{HTTP_HOST} - Entpsricht dem Muster - ubuntu.*

Aktion:
An Serverfarm weiterleiten
Schema: http://
Serverfarm: ubuntu.meinetld.de
Pfad: /{R:0}

Haken drin bei: Verwarbeitung von nachfolgenden Regeln beenden

Intern ist der Ubuntu Server über IP/Name ohne Probleme erreichbar.
Ich vermute mal, dass es nun in der Konfiguration des Ubuntu Servers liegt, nur leider habe ich nicht die Erfahrung was Linux angeht.

Ich hoffe ich konnte mein anliegen verständlich darstellen und jemand kann mir hierbei helfen.
 
Warum konfigurierst du nicht den DNS explizit für diese Subdomain? Dann kannst du dir die Weiterleitungen und so schenken.

P.S.: meinetld ist übrigens keine TLD. .de, .com, .net, ... sind TLDs.
 
Hi burglar225,

bei der Konfiguration handelt es sich um keine echte produktiv Umgebung, sondern findet alles bei mir Zuhause statt. Entsprechend habe ich eine ganz normale DSL Leitung (kein feste IP). Ich habe ein Konto bei DynDNS eingerichtet und verwalte von dort die Domain. Dort kann ich leider nur hinterlegen, dass (sub)meinetld.de zu meiner IP führen soll.

Ich wüsste gerade nicht, wie ich jede subdomain explizit einem Server zuweisen kann.
 
Wenn ich das richtig deute, leitest Du immer wieder auf die einsteigende Seite um. Daher too many redirects.
Du musst die internet Seite anders ansprechen (ubuntu.localdomain.intern, wie auch immer du es da eingerichtet hast)
 
Hi Thaddelino,

im Prinzip passiert im Hintergrund ja folgendes:
Eingabe im Browser: https://(sub.)meinetld.de
Ziel ist immer der IIS (Port 80, 443). Der IIS leitet anhand der subdomain den "User" an eine angelegte Serverfarm weiter bzw wenn nur die Domain aufgerufen wird "antwortet er selbst". Angelegte Serverfarm sind im prinzip die subdomains:

exchange.meinetld.de - Exchance Server (intern exchange.localdomain.intern)
ubuntu.meinetld.de - Ubuntu Server (intern ubuntu.local [Nicht teil der Windows Domäne]).

Insofern, wie meinst du mit anders ansprechen?
 
Du leitest Anfragen auf die Adresse ubuntu.meinetld.de am iis auf ubuntu.meinetld.de um. Und dann beginnt es wieder von vorne.
 
  • Gefällt mir
Reaktionen: burglar225
Cinderella22 schrieb:
Ich habe ein Konto bei DynDNS eingerichtet und verwalte von dort die Domain. Dort kann ich leider nur hinterlegen, dass (sub)meinetld.de zu meiner IP führen soll.
Das ist auch völlig OK. Was ich aber meine, ist die Verwaltung deiner Domain "meinetld.de". Dort kannst du einen CNAME-Eintrag z.B. so erstellen:
CNAME ubuntu.meinetld.de <deine DynDNS-Domain>

Bei welchem Anbieter liegt denn deine Domain?
Nochmal zur Präzisierung: Du verwaltest bei DynDNS nicht deine Domain "meinetld.de", sondern ausschließlich die DynDNS-Adresse.
 
Zuletzt bearbeitet:
Das ist doch eine endlos Schleife

Alles urls die mit Ubuntu beginnen sollten zu Ubuntu.meinetld.de umgeleitet werden.

Versuch mal ein anderes Schema

Z. B
Alles urls die mit Ubuntu beginnen sollten zu apache .meinetld.de umgeleitet werden.

Greift du auf die URL von außen zu oder nur intern?
 
cloudman schrieb:
Alles urls die mit Ubuntu beginnen sollten zu apache .meinetld.de umgeleitet werden.
Das wird nichts ändern, solange es im DNS nur eine einzige Wildcard-Regel gibt, die alles auf den IIS leitet.
 
@burglar225 bei name.com
Okay das mit dem CNAME schau ich mir mal an.

Verstehe dann aber trotzdem nicht, wie das dann ablaufen soll.
Port 80 und 443 kann ich im Router nur ein mal freigeben. Diese zeigen beide auf den IIS.
Um nun auch über https auf den Exchange zu kommen habe ich diese Weiterleitungs-Geschichte eingerichtet

Edit: auch andere Dienste die über 80 oder 443 arbeiten erreiche ich ja so. Sofern es Windows Server sind klappt es ja auch.. nur Ubuntu macht jetzt ein Problem
 
Dann schau mal hier rein: https://www.name.com/support/articles/206127137-Adding-DNS-records-and-templates und https://www.name.com/support/articles/115004895548-Adding-a-CNAME-Record

Ports haben mit Domains nichts zu tun. Du wirfst da Dinge durcheinander.

OK, ich habe jetzt nochmal drüber nachgedacht und hatte dich teilweise falsch verstanden. Wichtigste Information: Sowohl der IIS als auch der Apache sind im gleichen heimischen Netz.
Was du daher eigentlich brauchst, ist ein Reverse Proxy. Also eine Instanz, die Anfragen je nach aufgerufener Domain intern an den richtigen Webserver weiterleitet.
Ein Apache kann das auf jeden Fall, bei IIS weiß ich es nicht.
 
Zuletzt bearbeitet:
IIS kann das auch mit z.B. UrlRewrite. Bei Apache oder auch nginx ist dies aber etwas einfacher und eingängiger einzurichten.
 
burglar225 schrieb:
Das wird nichts ändern, solange es im DNS nur eine einzige Wildcard-Regel gibt, die alles auf den IIS leitet.

Stimmt ich hatte gedacht OWA läuft intern scheint aber nur eine Weiterleitung zum Microsoft Server zu sein.

Mit URL rewrite alleine wird es nicht funktionieren... @burglar225 war schneller Reverse Proxy ist das richtige Stichwort.

URL rewrite macht im Grunde nichts anderes als die URL zu ändern - trotzdem muss die geänderte URL vom Client abrufbar sein - das ist bei dir nicht der Fall

Ist zwar ziemlich alt aber sollte trotzdem funktionieren
https://docs.microsoft.com/en-us/ii...rl-rewrite-v2-and-application-request-routing
 
Hallo nochmal,

also Reverse Proxy ist ja der IIS.. OWA bzw. Exchange laufen auch intern. Der IIS leitet ja eben exchange.meinetld.de auf den Excahange Server exchange.localdomain.intern weiter.

Selbes spiel mit dem Plex. Extern unter plex.meinetld.de zu intern plex.localdomain.intern.
 
Dann versteh ich es nicht mehr :)

laut der Regel leitest du aber an ubuntu.meinetld.de um und nicht ubuntu.localdomain.intern
Bedingungen:
{HTTP_HOST} - Entpsricht dem Muster - ubuntu.*

Aktion:
An Serverfarm weiterleiten
Schema: http://
Serverfarm: ubuntu.meinetld.de
Pfad: /{R:0}


Wenn du ubuntu.localdomain.intern direkt aufruft klappt es dann ?

Kannst du deine aktuellen rules aus der web.config hier mal posten ?

Laufen plex und exchange vielleicht auf dem gleichen Server wie der IIS?
 
Zuletzt bearbeitet:
Eine Weiterleitung ist etwas völlig anderes wie ein Reverse Proxy.

Cinderella22 schrieb:
also Reverse Proxy ist ja der IIS.. OWA bzw. Exchange laufen auch intern. Der IIS leitet ja eben exchange.meinetld.de auf den Excahange Server exchange.localdomain.intern weiter.

Selbes spiel mit dem Plex. Extern unter plex.meinetld.de zu intern plex.localdomain.intern.
Das kannst du dir auch komplett sparen. Das funktioniert nämlich nur im internen Netz und da kannst du dann auch direkt auf den jeweiligen Server zugreifen.
 
@cloudman
die Servefarm, die ich unten angegeben habe ist ein frei wählbarer Name, dort könnte auch HundKatzeMaus stehen.

Hinter der Serverfarm stehen die Server. Im obigen beispiel steht hinter ubuntu.meinetld.de der Server ubuntu.localdomain.intern.

@burglar225
Das ganze funktioniert wunderbar auch außerhalb des Netzes. Der Sinn des ganzen ist ja verschiedene Dienste, die über Port 80 und 443 zu erreichen sind anhand der Subdomain an die jeweiligen Server weiterzuleiten.

Ich habe einmal spaßeshalber in die o. g. Serverfarm den Ubuntu Server entfernt und meinen CentOS PiHole eingefügt. Siehe das das klappt sofort. Sprich ich erreiche ohne Probleme mit ubuntu.meinetld.de die Oberfläche vom PiHole.

Ich werde jetzt nochmal den Dienst, den ich eigentlich benötige auf einen CentOS installieren und mal schauen ob es damit klappt.

Würde mich nicht wundern wenn Ubuntu mich diesmal wieder im Stich lässt ...
 
Zuletzt bearbeitet:
Deswegen habe ich gefragt ob du die Apache Seite überhaupt aufrufen kannst wenn du den ARR umgehst. Damit wäre schon mal eingegrenzt ob das Problem bei Apache oder IiS liegt
Vielleicht hast du das ja alles schon gemacht aber das weiß eben keiner ausser dir.

Edit sorry war Quatsch : Worum es mir geht ist heraus zu finden warum es zu too many redirects kommt. Die Ursache für diesen Fehler ist fast immer eine 301/302 Schleife.
Http://test.my.de ==> 302 location http://test.int.de ==> 302 loaction http://test.my.de

Wie auch immer du findest bestimmt eine Lösung
 
Zuletzt bearbeitet:
Ich will dir hier jetzt echt nicht auf die Füße treten. Aber...
Dein Aufbau funktioniert so einfach nicht. Da wird auch ein CentOS nichts dran ändern. Du hast ganz klar ein Konfigurationsproblem. Insofern informiere dich zum Thema Reverse Proxy, richte den Apache als solchen ein und lasse alle Anfragen auf diesen Apache auflaufen. Der Apache soll dann einfach die verschiedenen Domains unterscheiden und per ProxyPass die Kommunikation mit den eigentlichen Webservern übernehmen.
 
Hallo,

ich meld mich hier nochmal kurz zurück.

@burglar225
Da muss ich dir tatsächlich widersprechen. Der Wechsel auf CentOs hat das Problem an sich sofort behoben. Nach der Installation des Webservers und die Konfiguration im IIS konnte ich mit der jeweiligen Subdomain sofort den Webserver erreichen.

Es ist also definitiv ein Problem im Ubuntu.
Das werde ich mir bei Zeiten mal nochmal in Ruhe ansehen, für´s erste habe ich aber erstmal keine Lust mehr :-D.

Trotzdem danke an alle :-)
 
  • Gefällt mir
Reaktionen: burglar225
Zurück
Oben