Chris©: Apache Konfiguration Virtual Domain

Beitrag lesen

Hallo du "alsowiebitte",

ICH frage mich gerade, um wieviel wir alle zusammen durch Deinen Beitrag schlauer geworden sind.

Ich schätze mal, dass Matze etwas über DNS wissen wollte. Wie wird ein request am Server aufgelöst? Es gibt nur einen Apachen (beinahe hätte ich "Rudi Völler" geschrieben), der hier auch nur auf eine IP hört. Die Requests auf die "Subdomains" kann er ja mittels seiner Virtual Hosts abarbeiten. Siehe hierzu section 3 in der httpd.conf.

Im HTTP-Protokoll wird das mittels

Host: subx.domy.tld

angegeben. Ohne diese Angabe landet man immer auf dem primary Server.

Schau Dir dazu mal diese kleine Demoprogramm an:

<?php  ##### abfrage.php #####

$host ="stadtplan.xstadt.de";

$fp = fsockopen ($host, 80, &$errno, &$errstr, 30);
  if (!$fp)
  {
    echo "$errstr ($errno)<br />\n";
  }
  else
  {
    fputs ($fp, "GET /stadtplan/stadtplan HTTP/1.0\n");
    fputs ($fp, "Host: $host\n\n");

echo "<pre>";
    while (!feof($fp))
    {
      echo fgets($fp,128);
    }
    echo "</pre>";

fclose($fp);
  }
?>

Mit fsockopen wird nur die Verbindung zum Port des Devices hergestellt, dass sich (als IP) hinter dem Hostnamen versteckt. Erst mit der Übermittlung des Requests (die beiden fputs-Zeilen) wird dem hinter Port 80 versteckten Server (Webserver) klar, für welchen virtual host die Anfrage eigentlich ist. Macht man z.B. auf diese Weise eine Anfrage auf forum.de.selfhtml.org und lässt die "HOST:"-Zeile weg, bekommt man nicht das Forum...

Ich hoffe, Stefan verzeiht mir diese Anregung und Du hast etwas mehr Hintergrund bekommen, wie das läuft.

Grüße

Chris©