it-swarm.com.de

Was ist der Unterschied zwischen $ Host und $ http_Host in Nginx?

Was ist in Nginx der Unterschied zwischen Variablen $Host und $http_Host.

130
glarrain

$Host Ist eine Variable des Core Moduls.

$ Host

Diese Variable entspricht der Zeile Host im Header der Anforderung oder dem Namen des Servers, der die Anforderung verarbeitet, wenn der Host-Header nicht verfügbar ist.

Diese Variable kann in folgenden Fällen einen anderen Wert als $ http_Host haben: 1) Wenn der Host-Eingabe-Header fehlt oder einen leeren Wert hat, entspricht $ Host dem Wert der Anweisung server_name. 2) Wenn der Wert von Host die Portnummer enthält, enthält $ Host diese Portnummer nicht. $ Hosts Wert ist seit 0.8.17 immer klein geschrieben.

$http_Host Ist ebenfalls eine Variable desselben Moduls, aber Sie werden sie mit diesem Namen nicht finden, da sie generisch als $http_HEADER ( ref ) definiert ist.

$ http_HEADER

Der Wert des HTTP-Anforderungs-Headers HEADER, wenn er in Kleinbuchstaben umgewandelt wird und Striche in Unterstriche umgewandelt werden, z. $ http_user_agent, $ http_referer ...;


Zusammenfassend:

  • $http_Host Entspricht immer dem Anforderungsheader HTTP_Host.
  • $Host Entspricht $http_Host, in Kleinbuchstaben und ohne die Portnummer (falls vorhanden), außer wenn HTTP_Host fehlt oder ein leerer Wert ist . In diesem Fall entspricht $Host Dem Wert der Anweisung server_name Des Servers, der die Anforderung verarbeitet hat.
184
glarrain