• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

2 Server, aber nur einer erreichbar

Hallo,

ich hoffe, das mir hier jemand weiterhelfen kann, da ich seit Tagen google und einfach nichts sinnvolles finde.

Mein Rechneraufbau :

Modem ----- Rechner 1 ----- Rechner 2

Auf Rechner 1 läuft SuSE Linux 9.0 professional. Der Rechner dient als Router und Firewall. Desweiteren ist ein HTTP - und ein FTP - Server installiert. Ich habe eine dynamische IP, einen Account bei dyndns und habe ddclient laufen.

Meine Websites sind von überall (lokal, intern, extern) erreichbar.

Auf Rechner 2 ist ebenfalls SuSE Linux 9.0 professional und ein HTTP - Server installiert.

Das Problem ist jetzt, dass ich ENTWEDER die Sites auf dem ersten Rechner ODER (bei entsprechendem Eintrag unter FW_Forward_Masq in der Firewall2) die Sites auf dem zweiten Rechner erreichen kann.

Es muss doch irgendeine Möglichkeit geben, dem ersten Rechner zu sagen : Wenn die site x aufgerufen wird, die liegt hier. Und wenn die site y aufgerufen wird, leite die Anfrage weiter an Rechner 2.

Mit anderen Worten : Ich möchte es so haben, dass beide Webserver erreichbar sind. Je nachdem halt, welche site ich aufrufe soll entweder Rechner 1 oder Rechner 2 reagieren.

Mein Gedanke war jetzt, ein script zu erstellen, dass die Anfrage irgendwie an den zweiten Rechner weiterleitet...nur - wie ?

Oder gibt es eine andere Möglichkeit ?

Vielen Dank im Voraus.
 

Martin Breidenbach

Ultimate Guru
Vorschlag: leite Port 8080 auf den Rechner2 um. Dann kannst Du unter

xxx.dyndns.org

den einen und unter

xxx.dyndns.org:8080

den anderen ansprechen.
 
OP
T

The Darkness

Newbie
Wäre eine Möglichkeit, ja. Aber dazu muss ich (wenn ich das richtig verstehe) den port mit angeben im Browser.

Es sollte, wenn das machbar ist, letztendlich so sein:

MeineFirma.dyndns.org ---> Rechner 1

MeinForum.dyndns.org ----> Rechner 2

Das Ganze sollte doch durch virtuelle Hosts oder durch ein entsprechendes script auf Rechner 1 realisierbar sein. Heisst, egal welche der beiden url's ich eingebe komme ich auf Rechner 1 an. Bei MeineFirma.dyndns.org wird dann die entsprechende site angezeigt, bei MeinForum.dyndns.org leitet ein script die Anfrage weiter an Rechner 2, welcher dann die entsprechende site ausgibt.
 

Martin Breidenbach

Ultimate Guru
Ich glaube nicht daß man das mit iptables hinkriegen kann.

Möglicherweise kann man den apache auf Rechner 1 dazu bringen das nach Rechner 2 weiterzuleiten. Dazu kenne ich aber apache nicht gut genug.
 
OP
T

The Darkness

Newbie
Ok. Dann wart ich mal ab, wer hier sonst noch so postet und bastel in der Zeit mal ein bisschen. Wer weiss, vielleicht liegt die Lösung ja näher als gedacht. Nur : sollte das Ganze nicht machbar sein, würde das meine komplette Planung über den Haufen werfen und ich hätte alles umsonst gemacht (sind nicht die einzigen Rechner, die ich hier laufen habe) :(
 

oc2pus

Ultimate Guru
wie du das in deinen SuSE-Firewall integrierst weiß ich leider nicht.

aber mit so einer Regel leitest du alles was als Ziel-Ip die IP-deines-Rechner-2 hat und auf Port 80 reinkommt um, auf den zweiten Server:
iptables -t nat -A PREROUTING -p tcp -d <ip-des-webserver2>/24 --dport 80 -j DNAT --to <ip-deines-webservers2>:<port-des-webservers2>
 

Martin Breidenbach

Ultimate Guru
Das Problem ist ja daß er nur EINE externe Adresse hat und die auch noch dynamisch vergeben wird. Er will aber http Anfragen abhängig von der URL auf zwei Webserver verteilen ohne unterschiedliche Ports zu verwenden. Also von außen beide dieselbe IP-Adresse und Port 80. Ich sehe nicht wie iptables das auseinandersortieren soll.
 
OP
T

The Darkness

Newbie
Das ist mir soweit klar, aber genau da liegt ja das Problem. Ich hab ja nur eine IP. Der Rechner muss ja anhand der url entscheiden, wohin was geleitet werden soll.

Da das Ganze ja über dyndns.org läuft, kommt ja immer alles an meinem ersten Rechner an, egal welche der sites ich aufrufe. Deswegen vermute ich ja, dass die Lösung in einem script liegt.

Beispiel : Ich gebe MeineFirma.dyndns.org ein. Also leitet dyndns diese Anfrage an meinen Rechner weiter und die index.html wird aufgerufen.

Soweit ok. Jetzt gebe ich MeineFirma.dyndns.org/forum ein. Diese Anfrage landet dann ja auch erstmal auf dem ersten Rechner, und zwar im Normalfall im Ordner Forum bei der Datei index.html. Und genau in dieser Datei soll nun gesagt werden : Hier ist nichts, geh zum Rechner 2, dort liegt das gewünschte Dokument.

So in etwa denk ich mir das. Nur weiss ich eben nicht wie sich das realisieren lässt. Eine Alternativ wäre Virtual Hosts. Aber auch da weiss ich nicht weiter, sobald die Weiterleitung zum zweiten Rechner ins Spiel kommt :(
 

oc2pus

Ultimate Guru
MeineFirma.dyndns.org ---> Rechner 1
MeinForum.dyndns.org ----> Rechner 2

er kann doch virtuelle host definieren. dazu muss er natürlich einen eigenen DNS-Server aufsetzen. Oder seh ich das jetzt falsch ?
 
OP
T

The Darkness

Newbie
Klar könnte ich virtuelle hosts erstellen. Aber die wären dann ja auf dem gleichen Rechner und somit müssten dann ja auch die sites auf einem Rechner liegen. Und genau das soll ja eben nicht sein.

Selbst wenn ich 20 verschiedene Accounts hätte, so würden doch alle Anfragen auf meinem ersten Rechner landen, weil ja alle an die gleiche IP geleitet werden. Und bei dyndns.org eine interne IP wie 192.168.10.1 angeben geht ja nicht bzw. bringt nichts.
 

Martin Breidenbach

Ultimate Guru
Von außen kann er ja nur einen der beiden ansprechen. Sagen wir mal die Firewall leitet das an Rechner 1.

Jetzt kommt eine Anfrage an Rechner 2.

Die Frage ist ob man auf Rechner 1 einen virtuellen Host einrichten kann der die Anfrage sozusagen ähnlich wie ein Proxy auf Rechner 2 weiterleitet.

Leider habe ich keine Ahnung ob apache sowas kann.

Ich überlege gerade ob man sowas vielleicht mit einem Squid in Kombination mit eigenem DNS (der interne IP-Adressen verwendet) hinfummeln könnte.
 

oc2pus

Ultimate Guru
Ich überlege gerade ob man sowas vielleicht mit einem Squid in Kombination mit eigenem DNS (der interne IP-Adressen verwendet) hinfummeln könnte
yepp, proxy is the key to barbados ;)

ich hab so was ähnliches mal mit einem ftp-server probiert.
http://www.mcknight.de/jftpgw/

ansonsten realisiere es mit 2 Ports (80, 8080), dann kannste wieder mit iptables splitten.
 
OP
T

The Darkness

Newbie
Mir fällt da gerade was ein. Ich kann (muss) doch eine DocumentRoot angeben für meine Websites. Vielleicht kann ich es damit hinbiegen.....vielleicht geht ja sowas wie

DocumentRoot "192.168.10.1/www/htdocs/forum"

oder so ähnlich. Müsste doch auch möglich sein, dass die DocumentRoot auf einem anderen Rechner liegt.

@oc2pus: thx für den link, aber das arbeit ich heute nicht mehr durch. Dazu brauch ich Zeit - ist fast sowas wie Neuland für mich :D
 

oc2pus

Ultimate Guru
du brauchst den Link nicht durchzuarbeiten, das beschreibt einen FTP-Proxy ;) (das war nur Beispiel)
 
OP
T

The Darkness

Newbie
Ja sicher, das ist klar. Aber soooo unterschiedlich ist das Prinzip ja auch wieder nicht. Wenn da verschiedene FTP-Server zum Einsatz kommen, kann ich das ja vermutlich auch auf HTTP-Server umlegen. Natürlich nicht wortwörtlich, aber eben vom Prinzip her.
 
OP
T

The Darkness

Newbie
Juchu, ich hab die Lösung :D

Werd mich gleich mal an die Umsetzung machen...wenn alles klappt, meld ich mich wieder und poste die Lösung. Scheint recht simpel zu sein :wink:
 
OP
T

The Darkness

Newbie
Jawoll ja, es klappt :D

Nicht die beste Lösung, aber es klappt. Hab ganz einfach auf meinem ersten Rechner einen Ordner angelegt, in dem sich eine index.php befindet. In dieser steht einfach nur ein Link, der auf meinen zweiten Rechner verweist.

Fertig. Mehr ist es nicht.

Allerdings ist es halt im Moment noch so, dass ich bei z.B. MeineFirma.dyndns.org eingeben muss um auf den einen Rechner zu kommen und MeineFirma.dyndns.org/forum um auf den anderen zu kommen....aber auch dafür sollte es eine Lösung geben.

Nun ja, ich meld mich morgen (heute) wieder. Gn8 und erstmal vielen Dank für eure Tipps :D
 
OP
T

The Darkness

Newbie
Durfte eben gerade feststellen, dass das doch nicht geht...intern schon, aber vom Internet aus nicht. Der Link funktioniert zwar im Prinzip, aber da er ja eine interne IP zum Ziel hat, wird diese angezeigt im Browser aber natürlich nicht erreicht...Also von vorne rätseln und probieren.
 
A

Anonymous

Gast
Hallo,

Geht nicht.

Die URL wird vom Browser in eine IP-Adresse aufgelöst, von der Du nur eine Hast. Der Server bekommt von der eingegebenen URL nichts mit.

Sorry,

Grüße aus Mannheim,

kilhaasi
 
Oben