Benutzung einer Domain für mehrere Server

Apache, Lighttpd, nginx, Cherokee
samedi
Posts: 4
Joined: 2007-12-12 22:34

Benutzung einer Domain für mehrere Server

Post by samedi » 2007-12-12 22:36

Hallo zusammen,

Ich habe ein kleines Problem, das eigentlich gar nicht so selten sein kann, trotzdem finde ich dazu nichts gescheites irgendwie... ich hoffe dieses Frum hier ist richtig, evtl. würde auch "Datentransfer und Backuplösungen" passen?

Ich speichere für spezifische User, die sich registriert haben, Dateien in einem jeweils eigenen Ordner. User können dann u.a. über http://username.domain.com/ auf diese Dateien zugreifen, was ich per mod_rewrite realisiert habe und was auch super funktioniert. Nur sind es langsam soviele User (~120,000), das es Sinn machen würde, die Last auf mehrere Rechner zu verteilen. Ich habe schon mit neuen Diensten wie z.B. Amazon S3 experimentiert, was ich sowieso schon zu Backup-Zwecken nutze. Alles in allem brauche ich aber die Ordner auf eigenen Servern. Nun möchte ich nicht bei Einführung eines zweiten Servers diesen Usern eine ANDERE Kurzdomain zuweisen, sondern suche nach eine Lösung, wo evtl. ein dritter Rechner im Bunde einkommende Anfragen dem richtigen Rechner zuordnen könnte. Leider habe ich dazu nichts gefunden. Oder kann ich, und das würde das Thema wieder in ein anderes Forum bringen, das alles über DNS lösen (konkret: sind z.B. 200,000 Einträge a la "username IN A 123.123.123.123" in einer DNS Datei nicht ein bißchen zu viel??).

Kennt hier evtl. jemand ein paar Stichworte, die mich in diser Sache weiterbringen könnten, oder evtl. Links auf Softwarelösungen o.ä., dann wäre das echt total super!!

Vielen lieben Dank in jedem Fall!

EDIT: habe dazu eben was interessantes gefunden:
http://mysql-bind.sourceforge.net/
Evtl. klappt ja das! Trotzdem sind natürlich jegliche hilfreiche Beiträge willkommen. Vielen Dank!!
Last edited by samedi on 2007-12-12 22:47, edited 1 time in total.

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Benutzung einer Domain für mehrere Server

Post by flo » 2007-12-12 22:47

Wenn das Zeug dynamisch ist, wäre evtl. ein Datenbank-basierter DNS-Server interessant.

Ansonsten: ein paar hundert tausend Einträge dürften verkraftbar sein - die Anzahl der .de-Domains und die dazugehörigen DNS-Server dürften das zeigen. Die einzelnen Anfragen werden ja nicht (wesentlich) weniger, wenn Du nur eine IP hast.

samedi
Posts: 4
Joined: 2007-12-12 22:34

Re: Benutzung einer Domain für mehrere Server

Post by samedi » 2007-12-12 22:50

flo wrote:Wenn das Zeug dynamisch ist, wäre evtl. ein Datenbank-basierter DNS-Server interessant.

Danke!! Soeben dazu was gefunden (s.o.)!! Die Info mit der Anzahl der Einträge macht Sinn. Es ist nicht wirklich dynamisch, also die Einträge würde sich nicht ändern, es würde ständig welche hinzukommen bzw. alte rausgeschmissen werden. Hm... ok vielelicht doch dymnisch :roll: Ich probiers mal mit der Datenbank!! Vielen Dank für Deine Hilfe!

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Benutzung einer Domain für mehrere Server

Post by flo » 2007-12-12 22:53

samedi wrote: ... nicht wirklich dynamisch, also die Einträge würde sich nicht ändern, es würde ständig welche hinzukommen bzw. alte rausgeschmissen werden ...


Dann möchte ich nicht wissen, was für Dich statisch ist!?

;-)

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Benutzung einer Domain für mehrere Server

Post by daemotron » 2007-12-12 22:53

Wenn <username> einem bestimmten Muster entspricht, könntest Du lighttpd als Proxy vor n Server spannen, da lighttpd in der Lage ist, reguläre Ausdrücke in URLs zu interpretieren. Eine Proxy-Tabelle mit 200.000 Einträgen macht nämlich IMHO keinen "echten" Sinn...

Der entsprechende Abschnitt in der Lighty-Konfiguration könnte z. B. so aussehen:

Code: Select all

$SERVER["socket"] == "192.168.0.1:80" {

   $HTTP["host"] =~ "^a(.*).domain.com$" {
       proxy.balance = "hash"
       proxy.server  = ( "/" => (
           ( "host" => "192.168.0.10", "port" => 80)))
   }

   $HTTP["host"] =~ "^b(.*).domain.com$" {
       proxy.balance = "hash"
       proxy.server  = ( "/" => (
           ( "host" => "192.168.0.20", "port" => 80)))
   }

}
Damit werden User, die mit 'a' anfangen auf den ersten und 'b'-User auf den zweiten Server geleitet. Natürlich ließe sich das noch beliebig auf Buchstabenbereiche erweitern, also User von a-g auf Server 1, h-o auf 2 und p-z auf Server 3...

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Benutzung einer Domain für mehrere Server

Post by Joe User » 2007-12-12 22:54

3 Server + Fuse + SSHFS

Code: Select all

Server1: /home/a-m/mount_server2
Server1: /home/n-z/mount_server3

Server2: /home/a-m/[a-m]username
Server3: /home/n-z/[n-z]username

samedi
Posts: 4
Joined: 2007-12-12 22:34

Re: Benutzung einer Domain für mehrere Server

Post by samedi » 2007-12-12 23:33

Danke für die vielen Vorschläge! Also leider gibt es keine Unterscheidung nach alphabetischer Reihenfolge u.ä.
Dies ließe sich sicherlich gut für ein komplett neues System umsetzen, aber es gibt eben schon viele User deren Account ich dann verschieben müsste o.ä.
Ich werde morgen mal versuchen ob ich bind9 mit MySQL Support kompilieren kann und wie sich das so schlägt. Ergebnisse dann hier brandaktuell :-)

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Benutzung einer Domain für mehrere Server

Post by flo » 2007-12-13 00:28

Seit wann gibt es das denn - wäre ein NS mit nativer Datenbankunterstützung nicht sinnvoller!?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Benutzung einer Domain für mehrere Server

Post by Joe User » 2007-12-13 00:33

flo wrote:Seit wann gibt es das denn - wäre ein NS mit nativer Datenbankunterstützung nicht sinnvoller!?

IIRC ist dies beim aktuellen BIND9 der Fall...

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Benutzung einer Domain für mehrere Server

Post by flo » 2007-12-13 02:14

WoW - dachte nicht, daß der Standard sooo flexibel ist :-)

Bis jetzt waren Features eher Sache der Konkurrenz, oder?

flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin

Re: Benutzung einer Domain für mehrere Server

Post by flo » 2007-12-13 02:23

jfreund wrote:Wenn <username> einem bestimmten Muster entspricht, könntest Du lighttpd als Proxy vor n Server spannen, da lighttpd in der Lage ist, reguläre Ausdrücke in URLs zu interpretieren.


Pound kann das übrigens auch super - das Ding läuft stabiler als der Apache dahinter und ist ein spezialisierter Proxy!

(Und bevor beim Wort "proxy" wieder alle an Squid denken - schlank ist pound auch noch.)

samedi
Posts: 4
Joined: 2007-12-12 22:34

Re: Benutzung einer Domain für mehrere Server

Post by samedi » 2007-12-13 12:55

Hallo zusammen,
vielen Dank für die vielen Vorschläge!! Dem kann ich jetzt noch einen hinzufügen, der evtl. vielleicht auch schon bekannt ist: PowerDNS (pdns), ein frei verfügbarer Nameserver mit verschiedenen Backends.

http://www.powerdns.com/

Das ganze wirkt auf den ersten Blick "kommerziell", ist aber Open Souce mit ausführlicher Doku, Wiki etc., was man dann auf den Unterseiten findet. Mit gefällt daran vor allem, dass man im Vergleich zu der MySQL-Geschichte für Bind wirklich alles per Backend machen kann, also auch neue Domain anlegen z.B.
Ich habe das ganze vor 30 Min. kompiliert und bisher läuft es soweit sich das sagen lässt super. Was ich noch nicht ganz heraus habe ist wie es jetzt mit "notify" abläuft, aber das zeigt sich sobald ich mal wieder eine Domain anlege. Mein Secondary läuft noch unter bind9, was auch so bleiben kann denke ich?! Jedenfalls scheinen die beiden kompatibel zu sein.

Danke nochmals für die Hilfe an alle!!

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Benutzung einer Domain für mehrere Server

Post by Roger Wilco » 2007-12-13 14:15

flo wrote:WoW - dachte nicht, daß der Standard sooo flexibel ist :-)

In den neueren Versionen schon. Früher musste man Bind-DLZ noch nachpatchen. Und in Sachen unterstützter Resource Record Typen war Bind eh immer vorne dabei (oder welcher NS unterstützt z. B. noch Resource Records vom Typ SSHFP? ;))

[*as*]-kenny/generic-
Posts: 18
Joined: 2003-02-28 07:53
Location: Hannover

Re: Benutzung einer Domain für mehrere Server

Post by [*as*]-kenny/generic- » 2007-12-19 14:29

Für die Lastverteilung hast du mehrere Möglichkeiten.

1) ModRewrite
einfach auf den anderen Server weiterleiten

2) LVS
http://www.linuxvirtualserver.org

3) DNS
Roundrobin DNS