online 1
gast (50)

/ Forum / Webseiten/HTML

Webseiten/HTMLWebseiten/HTML

Fragevon JanSchmitte vom 01.08.2020, 09:50 Options

Lösung

Mehrere WebServer (VMs) logisch zusammenfassen?

Guten Tag alle miteinander,


ich habe zur Zeit ein mittelschweres Problem:

Ich bin gerade dabei, in der Firma mehrere Virtuelle Maschinen (auf Basis von VMware Server) aufzusetzen, auf denen unsere WebServices (Kalender, Wiki, Zeiterfassung, etc) laufen sollen. Die Virtuellen Maschinen stellen für mich auch nicht das Problem dar...

Die Schwierigkeit besteht darin, diese VMs ins Internet zu bekommen! Ich möchte vermeiden, jede einzelne VM bei einem Dienst wie z. B. DynDNS anzumelden.
Meine Ideallösung sähe so aus, daß ich eine VM konfiguriere, die als eine Art "Vermittler" fungiert, idealerweise wäre das mit der bei uns eingesetzten Firewall (ipfilter unter NetBSD 3.1) umzusetzen. Wichtig bei der ganzen Geschichte ist zusätzlich noch, daß die gesamte kommunikation über Port 80 laufen muss, da meine Kollegen auch von ausserhalb (aus anderen Firmen mit durchaus restriktiven Firewalls) auf unsere WebServices zugreifen können müssen. Also muss die Unterscheidung, an welche VM intern weitervermittelt werden muss, an der eingegebenen WebAdresse laufen.


Um das mal schematisch darzustellen:


extern arbeitender Kollege gibt Web-Adresse ein
   http://www.unsereAdresse/GewünschteVM

Restriktive Firewall des Kunden

Internet

Unsere Firewall (NetBSD 3.1, ipfilter)

Vermittler leitet weiter

VM "GewünschteVM" antwortet (Ubuntu 8.04 Server, Apache)



Gibt es eine (möglichst kostenfreie) Software, die die Aufgabe dieses Vermittlers übernehmen kann? Wie gesagt, die Unterscheidung kann nicht auf Port-Ebene laufen, sondern muss anhand der eingegebenen Adresse funktionieren...


Ich freue mich über jeden hilfreichen Ansatz!


MfG, Jan Schmitte


Antwort schreiben

Antwort 1 von Flupo vom 01.08.2020, 10:22 Options

Mein erster Gedanke dazu ist eigentlich recht einfach:
Leite die Anfragen alle an einen Webserver, der in der Lage ist, die anderen zu erreichen. Auf diesem legst du dann für jede Anwendung eine HTML/PHP-Seite an, die automatisch auf den richtigen Webserver weiterverbindet.

HTML (im HEAD-Bereich):
<meta http-equiv="refresh" content="0; URL=http://webserver1/startseite.html">

PHP:
<?
Header("Location: http://webserver1/startseite.php");
exit();
?> 


Die PHP-Lösung arbeitet meist etwas schneller.

Gruß Flupo

Antwort 2 von Flupo vom 01.08.2020, 10:28 Options

Hier noch ein recht ausführlicher Artikel zu Weiterleitungen.

Gruß Flupo

Antwort 3 von rabies vom 01.08.2020, 10:41 OptionsLösung

Lösung
Ich weiß nicht, wie's bei Apache aussieht, aber Lighttpd hat zum Beispiel das Modul "mod_proxy". Dieses fungiert als LoadBalancer und schleift Anfragen je nach Bedingung auf einen anderen Host durch.

Beispiel-Konfiguration sähe so aus:
$HTTP["host"] == "www.example.org" {
   $HTTP["url"] =~ "^/VMNr1/" {
      proxy.balance = "hash"
      proxy.server  = ( "" => ( 
         ( "host" => "192.168.0.100" )
       ))
   }
   $HTTP["url"] =~ "^/VMNr2/" {
      proxy.balance = "hash"
      proxy.server  = ( "" => ( 
         ( "host" => "192.168.0.101" )
       ))
   }
}

Erster Teil: mod_proxy leitet alle Anfragen, die an die Domain www.example.org gehen und VMNr1 anfragen, auf Server 192.168.0.100 um.

Zweiter Teil: mod_proxy leitet alle Anfragen, die an die Domain www.example.org gehen und VMNr2 anfragen, auf Server 192.168.0.101 um.


Apache sollte soetwas denke ich auch anbieten.


Nähere Informationen zu mod_proxy unter Lighttpd.

Grüße, rabies.

Antwort 4 von wellon vom 01.08.2020, 10:44 Options

ich glaub du hast da nen denkfehler drin. du forderst, dass der server mit den anderen kommunizieren können muss, aber du lässt ihn dann doch ausschliesslich mit dem client quatschen. eine weiterleitung ist kein proxy! du sagst dem client nur wo er hin soll, aber du gibst ihm keinen content durch.

Antwort 5 von JanSchmitte vom 01.08.2020, 10:53 Options

Uiuiui, so viel Hilfe,


erst einmal Danke allen!

@Flupo
Ich denke, wellon hat Recht... Eine einfache Weiterleitung wird nicht funktionieren, da die interne IP meiner VMs im Internet ja nicht verfügbar ist, genau das möchte ich ja vermeiden!

@rabies
Das ist wohl der richtige Ansatz. "Reverse Proxy" nennt sich das und scheint genau die Funktion zu sein, die ich benötige!

Apache kann das auch, unter http://www.apachetutor.org/admin/reverseproxies steht dazu eine Anleitung... Ich brauche also die Module mod_proxy und mod_proxy_html, damit Anfragen aus dem Internet vom Reverse Proxy an den entsprechenden Virtuellen Server bei uns im LAN weitergeleitet werden. Nach meinem Verständnis ist das von aussen absolut unsichtbar, dort ist nur der Reverse Proxy sichtbar, der nach aussen hin alle Anfragen entgegennicmmt und auch beantwortet


Hach ist das schön, wenn man weiss, wonach man suchen muss!


Danke allen Beteiligten!


MfG, Jan

Antwort 6 von Flupo vom 01.08.2020, 11:00 Options

Zitat:
Eine einfache Weiterleitung wird nicht funktionieren, da die interne IP meiner VMs im Internet ja nicht verfügbar ist, genau das möchte ich ja vermeiden!

Wenn die Weiterleitung erst hinter dem Internet-Gateway erfolgt, sollte es gehen. Von "draußen" wählst du ja nur die Adresse des Gateways an. Das leitet alle Anfagen auf den "Verteiler-Webserver" weiter, der dann die Verteilung auf die VM's erledigt.
Kann sein, dass ich da falsch liege, aber ich denke, dass das geht.

Gruß Flupo

Antwort 7 von rabies vom 01.08.2020, 11:13 Options

So eine Weiterleitung funktioniert in diesem Falle nicht, Flupo. Ich denke, alles soll eben über eine Adresse erreichbar sein.
Bei Deiner Methode müssten die VMs einzeln und jede für sich direkt aus dem Netz erreichbar sein.

Ähnliche Themen

Webserver GESUCHT
Donn  30.07.2007 - 39 Hits - 2 Antworten

eigener webserver?
todo  28.01.2008 - 8 Hits - 1 Antwort

Eigener Webserver mit Apache
Computerfreaki  09.04.2008 - 62 Hits - 16 Antworten

eigener Webserver
HenningDerZweite  25.04.2008 - 201 Hits - 13 Antworten

Webserver-Problem
Kampfstachel1  16.05.2008 - 185 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026