2 Server nur 1 Ip

fabi288

New Member
Hallo,

ich habe bei mir zuhause 3 Server es sollen noch weitere hinzukommen. Leider habe ich nur 1 IP. Gibt es eine Möglichkeit das man anhand der Domain erkennt zu welchen Server die Anfrage gehen soll. z.B. Server 1 bekommt alle Anfragen und leitet diese dann an wenn nötig an Server 2 bzw. an Server 3 weiter.

Also Domain

server1.zuhause.tld an Server 1
server2.zuhause.tld an Server 2
server3.zuhause.tld an Server 3


Bild:

Internet -> Ip (84.x.x.x) -> Server 1 -> Weiterleiten (192.x.x.8) -> Server 2
-> Weiterleiten (192.x.x.9) -> Server 3


Habe gelesen das es mit einem Proxy gehen soll hat jemand Anleitungen für mich?

Danke im Voraus.

Mit freundlichen Grüßen
Fabian Hars
 
Danke,

ich weiß nicht ich es so auf der Schneller verstanden habe. Aber ist es richtig das nur Webserver anfragen weitergeleitet werden. Ich brauche am besten was, was alle Ports weiterleiten kann ....

Mfg
Fabian
 
Und was hast du gegen HTTP/1.0? Der soll sich nicht ausgegrenzt fuehlen :D


Erklaerung des 'Nein':
Um eine Verbindung mit einer Domain aufzubauen loest der Client dessen IP-Adresse auf und verbindet sich mit dieser; der Domainname ist also nur dem Client bekannt. HTTP hat, um diese Einschraenkung zu umgehen, einen Request-Header namens 'Host' in welchem er explizit den Domainnamen wieder angibt.

Wie Roger Wilco bereits sagt ist das aber eine Eigenart von HTTP, alle anderen Dienste die ich kenne verwenden -und benoetigen- nur die IP.
 
Zeig mir mal den Host-Header bei HTTP/1.0
Bitte, frisch aus Nginx->Varnish =)
Code:
   27 RxRequest    c GET
   27 RxURL        c /
   27 RxProtocol   c HTTP/1.0
   27 RxHeader     c Host: pf-control.de
   27 RxHeader     c X-Forwarded-For: X.X.X.X
   27 RxHeader     c X-SSL: yes
   27 RxHeader     c X-SSL-id: XYZ
   27 RxHeader     c Connection: close
   27 RxHeader     c User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
   27 RxHeader     c Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
   27 RxHeader     c Accept-Language: en-us,en;q=0.5
   27 RxHeader     c Accept-Encoding: gzip, deflate

HTTP/1.0 braucht kein 'Host'-Header, es spricht aber afaik absolut nix dagegen eins zu verwenden.
 
Nein, bei HTTP/1.0 gibt es laut RFC 1945 keinen Host-Header, was aber viele Clients nicht davon abhält, ihn trotzdem zu senden (und auch die meisten Server nicht, diesen trotzdem auszuwerten).
 
Nur weil das RFC einen Header nicht definiert bedeutet das nicht dass er nicht trotzdem verwendet werden kann. RFC2616 setzt einen Host-Header als MUST-BE voraus, bei HTTP/1.0 ist er optional und muss weder vom Client noch vom Server unterstützt werden.

Gegenbeispiel dass Header definiert werden müssen sind Cookies; die haben zwar mit RFC2109 ihren eigenen RFC sind aber nicht vom HTTP-Standard abgedeckt.
 
Das einzige was bei o.g. Konfiguration möglich ist, sind Portweiterleitungen, d.h. Du kannst pro Port (entspricht meist einem Service) entscheiden und im Router festlegen, welcher Server angesprochen wird. Es geht nur ein Dienst auf einem Port. So kann z.B. nur EIN HTTP Server auf Port 80 lauschen, es spricht aber wenig dagegen, auf Port 81 und 82 z.B. HTTP Server auf den anderen Servern zubetreiben. Allerdings muss dann bei http IMMER der Port in der Form http://home.domain.tld:81 mitgegeben werden.

Das gleiche gilt für andere Dienste wie FTP, RDP, SSH und was man sonst noch so braucht.
 
Dann stoepselt man den Lankabel in Server2 oder Server3, vorausgesetzt diese haben ebefalls Loadbalancer bereits eingerichtet und betriebsbereit =)
 
Back
Top