it-swarm.com.de

Wie haben Sie eine IP-Adresse und viele Websites?

Wie kann ich es haben, wenn ich eine IP-Adresse im Internet habe, aber viele Webnamen? Zum Beispiel, wenn ein Hosting-Unternehmen eine gemeinsame IP hat, ich aber unbegrenzte Domain-Namen bekomme (zusammen mit allen anderen auf dieser Box).

Ich habe eine Box im Internet, aber ich möchte auf einen anderen Computer verweisen, auf dem sich eine andere Website befindet, wenn jemand das andere WWW eingibt ... (sie befindet sich direkt daneben in einer anderen Box). Ist das alles Subdomaining? Vielen Dank.

Ich bin das Hosting-Unternehmen

27
johnny

Es ist Teil des HTTP 1.1-Protokolls.

Insbesondere enthält das HTTP 1.1-Protokoll einen Header mit dem Namen "Host:", der angibt, auf welche Website auf einem bestimmten Server der Client zugreifen möchte.

Wenn also snoopy.net und woodstock.org beide 192.0.32.10 gemeinsam nutzen und Ihr Browser versucht, Inhalte von http://snoopy.net/doghouse Abzurufen, sieht die spezifische http-Anfrage folgendermaßen aus:

GET /doghouse HTTP/1.1
Host: snoopy.net

Wenn die gewünschte URL http://woodstock.org/seeds Lautet, sieht die Anfrage so aus

GET /seeds HTTP/1.1
Host: woodstock.org

In beiden Fällen befindet sich zwischen Ihrem Computer und Port 80 des Servers ein TCP-Socket. Der Server kann anhand des Host-Headers Inhalte von /var/www/snoopy.net oder /var/www/woodstock.org/ abrufen.

Es würde andere Header für Cookies und andere Dinge wie Browsertyp und zulässigen Inhalt geben, aber der "Host" -Header ermöglicht es dem Webserver, zu wissen, welche virtuelle Website gewünscht wird.

Es gibt mehr in der RFC2616 .

Dies ist auch der Grund, warum https-Sites * eine eigene IP-Adresse haben müssen - der SSL-Schlüsselaustausch und die Zertifikatsüberprüfung finden vor der http-Transaktion statt, sodass der http-Server nicht weiß, ob er das Zertifikat für "woodstock" ausgibt. org "oder" snoopy.net ", wenn eine https-Verbindung an Port 443 von 192.0.32.10 empfangen wird.


bearbeiten

** in den Kommentaren Grawity weist darauf hin, dass die TLS-Spezifikation Erweiterungen für SSL enthält, mit denen der Server erkennen kann, auf welche Website der Benutzer zugreifen möchte, und dass die meisten modernen Webbrowser über diese Erweiterungen verfügen , also muss etwas zu stark sein.

36
chris

Es gibt etwas, das alle modernen Browser zusammen mit der Anfrage senden, den "Host:" - Header.

Die tatsächliche Anfrage, die Firefox für diese Seite sendet, lautet:

Host: superuser.com 
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv: 1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5. 30729) 
 Akzeptieren: Text/HTML, Anwendung/xhtml + xml, Anwendung/xml; q = 0,9, */*; q = 0,8 
 Akzeptieren-Sprache: en-us, en; q = 0,5 
 Accept-Encoding: gzip, deflate 
 Accept-Charset: ISO-8859-1, utf-8; q = 0,7, *; q = 0,7 
 Keep-Alive : 300 
 Verbindung: Keep-Alive

Wie Sie sehen können, ist die

Host: superuser.com


In Bezug auf Ihr spezielles Problem müssen Sie nachlesen, wie Ihr spezielles Hosting-Unternehmen möchte, dass Sie die Konfiguration anfordern.

12
John Gietzen

Die Technik zum Hosten von mehr als einer Domain/Subdomain auf einer einzelnen IP-Adresse/einem Host heißt virtuelle Hosts . Die http-Get-Anforderung enthält den Domänennamen, für den die Anforderungen bestimmt sind, sodass der Webserver die Anforderung mit einer bestimmten virtuellen Domäne abgleichen kann.

Wenn Sie intern mehrere physische Hosts mit nur einer externen IP haben, sollten Sie Reverse Proxy einrichten, um die Anforderungen an die richtige Maschine/interne IP-Adresse weiterzuleiten.

6
3dinfluence

Die Funktion auf Ihrem Webserver wird normalerweise als "virtuelle Hosts" bezeichnet. Sobald Sie auf die DNS-Einträge verweisen, um auf diese eine IP-Adresse zu verweisen (wie in den anderen Antworten erwähnt), wird der Server die verschiedenen Sites je nach dem angeforderten Host bedienen.

Soweit auf eine andere Box zu zeigen geht. Sie können Weiterleitungen auf den meisten Webservern konfigurieren, wenn Sie erwarten, dass die Abfrage zuerst angezeigt wird. Wenn Sie über Subdomains sprechen, müssen Sie nur jede der Subdomains auf eine andere IP-Adresse verweisen.

d.h. Host.com -> IP 1, dann www.Host.com -> IP 2 und mail.Host.com -> IP 3

Wenn Sie genauere Antworten wünschen, müssen Sie angeben, welche Webserver-Software auf welchem ​​Betriebssystem Sie ausführen.

Möglicherweise ist ServeFault ein besserer Ort für diese Frage.

3
Colin Newell

Zusamenfassend...

Eins - Stellen Sie die DNS-Einträge für Ihre verschiedenen Domänen so ein, dass alle auf Ihre Box verweisen.

Zwei - Wie von anderen beschrieben, richten Sie Ihren Webserver (Sie sagen nicht, welcher) so ein, dass er mit dem angeforderten Hostnamen übereinstimmt.

Auf diese Weise werden alle Anforderungen für alle Ihre Domänen an denselben Computer gesendet, und die Konfiguration nimmt die angeforderte Domäne und leitet sie an den richtigen Ordner weiter, der den Inhalt dieser Site enthält.

1
Garry

Wenn ich Ihre Frage richtig lese, haben Sie zwei verschiedene Computer, die eine IP-Adresse über NAT (Network Address Translation)) gemeinsam nutzen. In diesem Fall muss eine Site einen anderen Port abhören (nicht 80) - Es gibt keine gute Möglichkeit, den Router basierend auf den HTTP-Metadaten "Host" Anforderungen an verschiedene Computer senden zu lassen. Es ist besser, nur eine zweite IP-Adresse für Ihren zweiten Server zu erhalten.

0
CarlF

Aus Ihrer Frage geht hervor, dass Sie einen separaten physischen Server für die zweite Website haben. In diesem Fall können Sie keine einzige IP-Adresse für die beiden Server verwenden. Sie können entweder a) eine zweite öffentliche IP-Adresse für Ihren zweiten Host erhalten oder b) einen intelligenten Proxy einrichten, der Anforderungen basierend auf den Host-Headern an verschiedene Server in Ihrem internen Netzwerk weiterleitet. Ich bin mir ziemlich sicher, dass b) möglich ist, aber ich habe keine wirkliche Vorstellung davon, wie es funktioniert. Sie müssen also jemanden fragen, ob Sie dies versuchen.

0