• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Umleitung wenn 1..Server nicht erreichbar

kjot259

Neues Mitglied
Hallo an alle,

bin neu hier und gleich habe ich eine schwerzulösende frage :)
hoffentlich kann mir jemand weiterhelfen.

ich habe eine Homepage die ich gerne umleiten möchte wenn server 1 nicht erreichbar ist. geht das?

meinehomepage.de liegt derzeit auf Server0 (als umleitung auf Server1)
Server0 ist nur eine Visitenkartenumleitung

Server1 und Server2 (sind absolut identisch aber verschiedene Provider)
mit 200 GB Platz
Wenn mal Server1 ausfällt möchte ich gerne das dann automatisch auf Server2 umgeleitet wird.
Die umleitungsdatei auf Server0 müßte somit eine Abfrage starten ob Server1 antwortet. aber wie macht man das am besten?

Vielen dank schon mal mi voraus.

gruß

kj
 
Werbung:
du könntest zB eine eigene 404 Fehlerseite erstellen, auf der man umgeleitet wird sobald sie aufgerufen wird, also wenn also ein Fehler mit der Seite besteht, öffnet sich die 404-Seite, und auf der ist dann eine Automatische Weiterleitung zu Server 2.

WEnn nun aber der ganze Server ausfällt geht das natürlich nicht, dann müstest du ein javascript erstellen für die URL, die ausgeführt wird bevor die eigentliche Seite aufgerufen wird.WEiss nicht wie das Funktioniert, sollte aber zuu machen sein schreib doch einfach mal ins JAVA Forum oder google mal danach
 
Wenn Du schon eine JavaScript-Lösung empfiehlst, dann solltest Du den OP nicht ins Java-Forum schicken, dann kommt er nie ans Ziel.

Wenn der Server ausfällt, kann man von dem Server aus natürlich nichts mehr machen. Das, könnte ich mir vorstellen, kann höchstens ein Router übernehmen, der sieht, dass Rechner 1 nicht erreichbar ist und deshalb die Anfrage an Rechner 2 weiterleitet.

Mit HTML, JavaScript oder sonstigen Lösungen, die auf dem ausgefallenen Server laufen, kann man da natürlich gar nichts machen.
 
Werbung:
Das ist nicht wahr Efchen. Du kommst schließlich erst auf Server0 (der muss natürlich online sein) und der schließlich leitet dich weiter. Wie sieht es bei dir mit PHP-Kenntnissen aus? Such mal nach fopen()
 
Hallo und vielen dank für die antworten, habe in andere foren probiert und komme leider nich wirklich weiter.
PHP? ist das was zu essen? :)

okok, ich weiß was php ist, aber nicht wie man php-scripte schreibt.

ich habe mir schon gedacht das man folgendes haben müßte:

server0 (mein provider) stellt mir ein paar MB zur verfügung das müßte reichen für eine kleine seite mit einem skript, welches checkt ob server1 erreichbar ist oder nicht wenn ja, dann leite aus server1 ansonsten auf server2 oder bleibe auf server0.

leider bräuchte ich als Grüne Gurke nicht nur tipps dazu sondern auch konkrete hilfe mit java od. perl
rein mit html werde ich da wohl nicht weiterkommen.

gruß

kj
 
Werbung:
Wie sind denn die Servereinstellungen auf Serrver0 im Bereich PHP?
Konkret: Kann man dort mit PHP Seiten von fremden URL´s per include() oder require() einbinden? Denn hätte ich einen Lösungsansatz im Kopf.

"index.php"-Datei auf Server0:

PHP:
<?php
if (require("http://www.meinedomain.de/verfuegbarkeit-testen.php")) {
  header ('Location: http://www.meinedomain.de/');
}
elseif (require("http://www.meinedomain2.de/verfuegbarkeit-testen.php")) {
  header ('Location: http://www.meinedomain2.de/');
}
else {
  echo '
    // eigene Fehlermeldung in HTML und CSS, wenn kein Server verfügbar ist
  ';
}
?>
Und die Datei "verfuegbarkeit-testen.php":

PHP:
<?php
// leer...
?>
Müsste so gehen - korrigiert mich, wenn ich falsch liege.

EDIT: Habe include() in require() geändert - aus Sicherheitsgründen.

EDIT 2:

Hier habe ich nochmal einen Script, der - wenn beide Server verfügbar sind - einen per Zufall auswählt und zu dem weiterleitet, um die Belastung der einzelnen Server zu verringern.

PHP:
<?php
if (require("http://www.meinedomain1.de/verfuegbarkeit-testen.php") & require("http://www.meinedomain2.de/verfuegbarkeit-testen.php")) {
  $server = rand(1,2);
  if ($server == 1) {
    header ('Location: http://www.meinedomain1.de/');
  }
  else {
    header ('Location: http://www.meinedomain2.de/');
  }
}
elseif (require("http://www.meinedomain1.de/verfuegbarkeit-testen.php")) {
  header ('Location: http://www.meinedomain1.de/');
}
elseif (require("http://www.meinedomain2.de/verfuegbarkeit-testen.php")) {
  header ('Location: http://www.meinedomain2.de/');
}
else {
  echo '
    // eigene Fehlermeldung in HTML und CSS
  ';
}
?>
Und die Datei "verfuegbarkeit-testen.php" bleibt gleich.
 
Zuletzt bearbeitet:
wie wäre es mit sowas:

PHP:
<?PHP

function ping($host, $port)
{
   $timeout = 20;
   $handle = @fsockopen($host = "udp://".$host, $port, &$errno, &$errstr, $timeout);
   if (!$handle)
   {
        return false;
        exit();
   }
   else
   {
         return true;
         fclose($handle);
   }
}


$server = array("mn-portal.at", "html.de", "turilau.hu");
foreach ($server as $webserver)
{
    if (ping($webserver,80))
    {
        echo $webserver.": online"."<br>";
        break;
    }    
}
?>
statt des echos kann man ja die umleitung setzen...
 
Hallo,

vielen dank für die anregungen. sehen echt interessant aus :)
aber wie und wo müssen welche daten gefüllt werden und wo muß der php wie aufgerufen werden?

wie schon gesagt, habe echt keine ahnung von diesen dingen :(

vielen dank schonmal für die bisherigen hilfen und tipps.
 
Werbung:
Also bei meinem Beispiel wäre das so:

Auf Server 0 kommt die Datei index.php, die folgenen Code enthält:

PHP:
   <?php
if (require("http://www.meinedomain.de/verfuegbarkeit-testen.php")) {
  header ('Location: http://www.meinedomain.de/');
}
elseif (require("http://www.meinedomain2.de/verfuegbarkeit-testen.php")) {
  header ('Location: http://www.meinedomain2.de/');
}
else {
  echo '
    // eigene Fehlermeldung in HTML und CSS, wenn kein Server verfügbar ist
  ';
}
?>

Auf die anderen beiden Servern kommt jeweils einmal die Datei verfuegbarkeit-testen.php, die keinen Inhalt enthält.

Ich betone aber noch einmal, dass dafür auf Server 0 die Funktionen include(), bzw. in diesem Falle require() auch auf fremde Server zugreifen dürfen.
 
in meinem beispiel befüllt man das array $server mit den webservern, die man testen möchte, die server werden per ping kontaktiert und beim ersten erfolg wird ein online (statt des echos geht ja auch eine weiterleitung) aktiviert.
einbauen kann/muss man das dort, wo man es braucht. in deinem fall wohl die index.php deines webspaces.

vorteil:

man kann so viele server pingen, wie man will, der erste verfügbare wird verwendet. es wird also nachgesehen, welcher von x servern gerade frei ist.
 
Hallo Sysop und Basti,

ich danke euch beiden für die anregungen, leider war ich zeitlich nicht in der lage gewesen es zeitnah auszuprobieren. aber nun gehe ich die sache nochmal an.
Sysops lösung scheint mir die einfachere zu sein, bleiben nur ein paar fragen:
1. Dein code kommt in die index.php und diese wird auf dem rootverzeichnis des server0 hinterlegt?
2. warum werden bei der serverangabe keine www.usw angegeben? oder braucht man das in diesem falle nicht?
3. echo rausnehmen ist klar, aber reicht es dann aus einfach die neue aufzurufende adresse dort einzugeben? oder muß man wie bei html forward als befehl benutzen?

vielen dank euch beiden nochmal.
und sorry für die zeitlich etwas verspätete feedbacks :)

in meinem beispiel befüllt man das array $server mit den webservern, die man testen möchte, die server werden per ping kontaktiert und beim ersten erfolg wird ein online (statt des echos geht ja auch eine weiterleitung) aktiviert.
einbauen kann/muss man das dort, wo man es braucht. in deinem fall wohl die index.php deines webspaces.

vorteil:

man kann so viele server pingen, wie man will, der erste verfügbare wird verwendet. es wird also nachgesehen, welcher von x servern gerade frei ist.
 
Werbung:
1. Dein code kommt in die index.php und diese wird auf dem rootverzeichnis des server0 hinterlegt?
genau.
2. warum werden bei der serverangabe keine www.usw angegeben? oder braucht man das in diesem falle nicht?
nein, braucht man nicht. es wird die domain gepingt, kein dienst.
3. echo rausnehmen ist klar, aber reicht es dann aus einfach die neue aufzurufende adresse dort einzugeben? oder muß man wie bei html forward als befehl benutzen?
statt des echos ein:
PHP:
header ('Location: http://www.'.$webserver);
sollte reichen.
 
Hallo sysop,

ich habe soeben deinen Beitrag gelesen und hoffe trotz 2009 noch auf Antwort:

Wenn ich als erste Domain z.B. "dsfasdf.de" eingebe und diese nicht findet, sollte er doch auf server 2 springen oder?
 
Werbung:
Zurück
Oben