zwei webserver parallel betreiben die nach außen eine Einheit darstellen

krischanlp

Registered User
Hallo,

ich hoste diverse Installationen einer Webapplikation für Kunden auf einem vserver von 1blu. Dieser hat neben regelmäßigen Netzwerkausfällen nun auch oft seine Leistungsgrenze erreicht.

Daher würde ich diesen Server jetzt gern um einen weiteren Server erweitern auf den alle Neukunden kommen. Die alten Kunden sollen weiterhin zu dem derzeitigen Server geleitet werden.
Sollte der neue Server dann auch an seine Grenzen stoßen wäre ein dritter Server möglich (oder auch das Abschalten des alten nach einer gewissen Zeit).

Meine Frage nun: wie bekomme ich Apache dazu, dass er URLs nach außen immer gleich darstellt ? Ich bekomme also eine URL der Art: subdomain.domain/path1 und meine Apache muss nach einer Liste von URLs (die der alten Kunden) wissen, dass er diese nun an den anderen Server schicken muss. Weiterhin soll der Kunde nichts davon merken und in der Browserzeile weiterhin die alte URL stehen bleiben.

Es geht hierbei zwar auch in gewisser Weise um Load balancing, aber ich möchte dabei definitiv keine Daten (Webserver oder MySQL) replizieren zwischen den Servern. Jeder Server kennt nur seine Daten - mit außnahme des Servers wo die Domain draufzeigt. Denn dieser muss dann an den / die entsprechenden Server delegieren.

Geht sowas mit Apache oder sollte man diese Sachen anderweitig angehen ?
 
Wenn jede Domain nur auf einem der Server liegt, sollte diese einfach auf den entsprechenden Server zeigen und gut ist.

Wenn du Aufrufe auf Server2 über Server1 umleitest, dann hast du auf Server1 folgenden Traffic:
Clients<->Server1 + 2*(Clients<->Server2)

Und wenn Server1 Netzwerkprobleme hat, dann ist Server2 automatisch auch unerreichbar.

Geht sowas mit Apache oder sollte man diese Sachen anderweitig angehen ?
->DNS
 
Last edited by a moderator:
Jede Subdomain (eine Subdomain ist nichts weiter als ein Hostname (FQDN)) hat in dem Fall einen eigenen A-Record, der auf den entsprechenden Server verweist.
 
Was sind denn meine Optionen ? Nur damit ich überlegen kann was es dann für Aufwand bedeuten würde das zu verteilen etc.
Ich möchte ungern pro subdomainebene teilen da einige davon wie de en oder es wesentlich mehr gefragt sind als andere und diese dann potentiell auch irgendwann den Server "sprengen" könnten.
 
Ein Reverse Proxy könnte die Anfragen verteilen. Aber der müsste dann immer erreichbar sein!
 
Wenn es nach mir geht sollten alle Server immer erreichbar sein :D
Das heißt dann, ich würde den Server dafür aussuchen der die statistisch wenigsten Ausfälle (außer angekündigte) hat.
 
Das heißt dann, ich würde den Server dafür aussuchen der die statistisch wenigsten Ausfälle (außer angekündigte) hat.

Ja. Und idealerweise sollten beide Server beim gleichen Provider stehen, dann musst Du den internen Traffic (zwischen Reverse Proxy und Webserver) nicht bezahlen.

Schau Dir mal Pound an: Apsis Gmbh
 
Danke für den Hinweis.
Pound ist echt ne feine Sache, auch wenn ich bisher nur lokal getestet habe.
Dummerweise scheinen subdomains nicht zu funktionieren.
Mein PC heißt "debian" und wird bei Anfrage über Port 8080 (mein Testport hier) korrekt weitergeleitet.
Auch ein
Code:
ListenHTTP
	Address 192.168.2.2
	Port	8080

        Service
            URL ".*/~krischan/*"
            BackEnd
                Address 127.0.0.1
                Port    80
            End
        End

	Service
		BackEnd
			Address	127.0.0.1
			Port	80
		End
	End
End

funktioniert bestens. Sobald ich die IP für das Backend ändere bekomme ich ein timeout bei debian/~krischan/
Wenn ich aber nun URL "de.*/~krischan/*" versuche wird die Weiterleitung ignoriert.

Hast du das schonmal mit subdomains probiert ? Oder liegt es nur an der lokalen Version (mein Apache hat keine Subdomains hier)
 
Back
Top