it-swarm.com.de

Warum müssen Server ihre Domain kennen?

Warum müssen Server neben dem Routing-Verkehr mit dem Servernamen konfiguriert werden?
Es scheint in jedem Fall eine Verschwendung zu sein, mit Ausnahme von Routing oder Hosting für eine TLD.

Nginx-Beispiel:

server {
    listen 80;
    server_name myexample.com
    ...
}

Apache gibt auch eine Warnung Could not reliably determine the server's fully qualified domain name aus, wenn Sie den Servernamen nicht festlegen.

2
Stephen

Der Hauptgrund ist: HTTP-Anfragen enthalten den Domainnamen. Sie könnten stackoverflow.com und askubuntu.com alle von demselben Front-End-Rechner aus bedienen. Wenn der Server eine Anfrage erhält, muss er wissen, welchen Inhalt er senden muss. Dies ist der Hauptgrund, warum die Serverkonfiguration überhaupt über den Hostnamen spricht.

Warum müssen Sie es einstellen, wenn Sie nur eine Domain bedienen? Es gibt keinen triftigen Grund, es ist nur eine Implementierungsentscheidung in Nginx. Andere Webserver antworten möglicherweise nur standardmäßig für alle Hostnamen, z. B. Python HttpServer.

Ein zweiter Grund ist, dass der Hostname in Fehlerseiten verwendet werden kann und wir möchten, dass er example.com und nicht f1234.googlecloud.com ist.

4
poolie

Es tut uns leid. Aber y'all habe den Punkt verpasst. Es kam mir der Gedanke, dass ich mit dem vorherigen Satz beleidigt habe, was nicht das war, was ich wollte. Also füge ich Folgendes hinzu: Ich mag deine Antworten. Sie sind richtig. Sie vermissten jedoch einige historische und allgemeine Informationen in Bezug auf einen Hostnamen und nicht unbedingt einen Domainnamen. Welches ist, was ich hier zu sagen versuche, wenn auch nicht so gut, wie ich möchte.

Das Festlegen eines Hostnamens für einen Server und, wie die Frage impliziert, für einen Webserver besteht darin, mindestens zu wissen, welche Pakete der Server annehmen und beantworten soll. Verwechseln Sie nicht die Vorstellung, dass ein Hostname nur der Einfachheit halber dient und dass die IP-Adresse die einzige wichtige Netzwerkeinstellung ist. Überhaupt nicht. Paket-Header können mit einem Host-Namen oder Domain-Namen angesprochen werden, wenn sie auf dem Internet basieren.

Bei der Erstellung eines Anforderungspakets wird häufig der Hostname oder der Domänenname in den Paketkopf eingefügt. Die Adress- und Weiterleitungsinformationen werden sekundär auf einer anderen Netzwerkebene festgelegt und können sich auch während der Weiterleitung ändern, während der Hostname oder der Domänenname immer gleich bleiben, wenn der Header über einen Proxy neu geschrieben wird.

Das Hinzufügen eines Hostnamens mag trivial erscheinen und ist daher nicht wichtig, ist jedoch für die Vernetzung und das Routing von entscheidender Bedeutung. Aus diesem Grund werden Broadcasts in Netzwerken gesendet, um festzustellen, welche Hostnamen welche IP- und MAC-Adressen haben und wie Anforderungen an den richtigen Ort weitergeleitet werden. Auch hier wird ein Paket wahrscheinlich mindestens über den Hostnamen adressiert. Ihr Router kann nun das Anforderungspaket und Ihren Computer leiten, der dann weiß, dass das Paket akzeptiert und beantwortet werden soll.

Wiederum handelt es sich bei dem Hostnamen um eine statische Adresse, während die IP-Adresse in Bezug auf das Netzwerkrouting eine dynamische Adresse ist. Auch wenn eine IP-Adresse statisch zugewiesen wird, bleibt sie im Hinblick auf das Netzwerkdesign eine dynamische Einheit. Sie kann jederzeit geändert werden.

Ich weiß, dass einige mit meiner Prämisse streiten werden, aber oft sehe ich das Konzept umgekehrt, wie es hier zu sein scheint. Ich spreche von Netzwerk-Routing 101. Host-Namen überschreiten alle Protokolle, während IP-Adressen dies nicht tun. Dies bedeutet, dass unabhängig vom verwendeten Netzwerkprotokoll der Hostname der wichtigste Adressierungsmechanismus bleibt. Es kommt nur so vor, dass TCP/IP die IP-Adressierung bei der Paketerstellung zulässt. Ich bin nicht sicher, ob ein solcher Mechanismus in anderen Protokollen existiert. Ich kann mich an keine erinnern.

0
closetnoc