Verwendung von benutzerdefinierten Nginx-Variablen und integrierten vordefinierten Variablen

Verwendung von benutzerdefinierten Nginx-Variablen und integrierten vordefinierten Variablen

Überblick

Nginx kann Variablen verwenden, um die Konfiguration zu vereinfachen und die Konfigurationsflexibilität zu verbessern. Auf alle Variablenwerte kann folgendermaßen verwiesen werden:

$Variablenname

Es gibt zwei Arten von Variablen in nginx: benutzerdefinierte Variablen und integrierte vordefinierte Variablen

Integrierte Variablen

Stellungnahme

Mit dem Set-Befehl (non-unique) können Sie Variablen in Tags wie Server, http, location usw. deklarieren. Die Syntax lautet wie folgt

setze $Variablennamen Variablenwert

Beachten Sie, dass alle Variablen in nginx mit $ beginnen müssen.

Sichtweite

Alle in der Nginx-Konfigurationsdatei verwendeten Variablen müssen deklariert werden, da Nginx sonst nicht gestartet werden kann und entsprechende Ausnahmeprotokolle gedruckt werden.

Ein interessantes Merkmal der Nginx-Variablen besteht darin, dass keine davon global sichtbar ist, es sich jedoch nicht um globale Variablen handelt. Das folgende Beispiel

Standort a/
 Rückgabe 200 $a
}

Standort b/ {
 setze $a hallo nginx
 Rückgabe 200 $a
}

Da die Variable global sichtbar ist, meldet nginx beim Start keinen Fehler. Der spezifische Wert von $a ist jedoch an der ersten Stelle unbekannt, sodass das zurückgegebene Antwortergebnis eine leere Zeichenfolge ist.

Für Variablen, die in Tags auf verschiedenen Ebenen deklariert sind, gelten die folgenden Sichtbarkeitsregeln:

  • Die im Standort-Tag deklarierten Variablen sind für diesen Standortblock sichtbar.
  • Im Servertag deklarierte Variablen sind für den Serverblock und alle Unterblöcke im Serverblock sichtbar.
  • Im http-Tag deklarierte Variablen sind für den http-Block und alle Unterblöcke im http-Block sichtbar.

Integrierte vordefinierte Variablen

Integrierte vordefinierte Variablen sind Variablen, die ohne Deklaration verwendet werden können und normalerweise den Wert eines Teils des Inhalts einer HTTP-Anforderung oder -Antwort enthalten. Im Folgenden sind einige häufig verwendete integrierte vordefinierte Variablen aufgeführt.

Variablenname Definition
$arg_PARAMETER Der Wert des Parameters mit dem Namen PARAMETER in der GET-Anfrage.
$args Diese Variable entspricht dem Parameter in der GET-Anfrage. Zum Beispiel foo=123&bar=blahblah; diese Variable kann nur geändert werden
$binary_remote_addr Die Clientadresse im Binärformat.
$body_bytes_sent Die Anzahl der Bytes der übertragenen Seite
$Inhaltslänge Das Content-Length-Feld im Anforderungsheader.
$Inhaltstyp Das Content-Type-Feld im Anforderungsheader.
$cookie_COOKIE Der Wert des Cookies COOKIE.
$Dokumentstamm Der in der Root-Direktive für die aktuelle Anforderung angegebene Wert.
$document_uri Dasselbe wie $uri.
$Gastgeber Das Host-Headerfeld in der Anforderung. Wenn der Host-Header in der Anforderung nicht verfügbar oder leer ist, der Name des Servers, der die Anforderung verarbeitet (der Wert der server_name-Direktive des Servers, der die Anforderung verarbeitet). Der Wert ist klein geschrieben und beinhaltet nicht den Port.
$Hostname Der Maschinenname ist der Wert des Systemaufrufs gethostname.
$http_HEADER Der Inhalt im HTTP-Anforderungsheader, HEADER ist der in Kleinbuchstaben umgewandelte Inhalt der HTTP-Anforderung, - wird zu _ (Bindestrich wird zu Unterstrich), zum Beispiel: $http_user_agent (der Wert von Uaer-Agent);
$sent_http_HEADER Der Inhalt im HTTP-Antwortheader, HEADER, ist der in Kleinbuchstaben umgewandelte Inhalt der HTTP-Antwort, - wird zu _ (Bindestrich wird zu Unterstrich), zum Beispiel: $sent_http_cache_control, $sent_http_content_type…;
$ist_args Wenn $args gesetzt ist, ist der Wert "?", andernfalls "".
$limit_rate Diese Variable kann die Verbindungsrate begrenzen.
$nginx_version Die aktuell ausgeführte Nginx-Versionsnummer.
$Abfragezeichenfolge Dasselbe wie $args.
$remote_addr Die IP-Adresse des Clients.
$remote_port Der Port des Clients.
$remote_user Der Benutzername, der vom Auth Basic-Modul authentifiziert wurde.
$Anforderungsdateiname Der Dateipfad der aktuellen Verbindungsanforderung, generiert durch die Root- oder Alias-Direktive und die URI-Anforderung.
$Anforderungstext Diese Variable (0.7.58+) enthält die Hauptinformationen der Anfrage. Dies ist an Standorten sinnvoll, an denen die Anweisungen proxy_pass oder fastcgi_pass verwendet werden.
$Anforderungstextdatei Der temporäre Dateiname der Client-Anforderungstextinformationen.
$Anforderungsabschluss Auf „OK“ gesetzt, wenn die Anfrage erfolgreich war; auf leer gesetzt, wenn die Anfrage nicht abgeschlossen wurde oder nicht die letzte in einer Reihe von Anfragen war.
$Anforderungsmethode Diese Variable ist die vom Client angeforderte Aktion, normalerweise GET oder POST. In den Versionen 0.8.20 und früher ist diese Variable immer die Aktion in der Hauptanfrage. Wenn die aktuelle Anfrage eine Unteranfrage ist, wird die Aktion der aktuellen Anfrage nicht verwendet.
$Anforderungs-URI Diese Variable entspricht der ursprünglichen URI, einschließlich einiger Client-Anforderungsparameter. Sie kann nicht geändert werden. Informationen zum Ändern oder Umschreiben der URI finden Sie unter $uri.
$Schema Das verwendete Protokoll, z. B. http oder https, z. B. rewrite ^(.+)$ $scheme://example.com$1 redirect;
$server_adresse Serveradresse. Dieser Wert kann nach Abschluss eines Systemaufrufs ermittelt werden. Wenn Sie den Systemaufruf umgehen möchten, müssen Sie die Adresse in „listen“ angeben und den Bind-Parameter verwenden.
$Servername Servername.
$server_port Die Portnummer, über die die Anforderung beim Server eintraf.
$server_protocol Das in der Anforderung verwendete Protokoll, normalerweise HTTP/1.0 oder HTTP/1.1.
$uri Die aktuelle URI in der Anfrage (ohne Anfrageparameter, die Parameter sind in A R G S ) , NEIN Dasselbe Bei Durchsuchen Sicht Gerät passieren Liefern von args), der , und der durch interne Umleitung oder mithilfe der Indexdirektive geändert werden kann. Geben Sie weder das Protokoll noch den Hostnamen an, z. B. /foo/bar.html

Dies ist das Ende dieses Artikels über die Verwendung von benutzerdefinierten Nginx-Variablen und integrierten vordefinierten Variablen. Weitere relevante benutzerdefinierte Nginx-Variablen und integrierte vordefinierte Variablen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung und Isolierung der in Nginx integrierten Variablen zum einfachen Abfangen
  • Teilen Sie die neueste Version der integrierten Nginx-Variablen
  • Eine kurze Analyse des Schreibens und der Verwendung von Variablen in der Nginx-Konfigurationsdatei
  • Zusammenfassung der globalen Nginx-Variablen
  • Zusammenfassung der globalen Variablen in Nginx

<<:  MySQL-Triggerprinzip und Analyse von Anwendungsbeispielen

>>:  Praxis der Vue Global Custom-Anweisung Modal Drag

Artikel empfehlen

Zusammenfassung der Kompatibilitätsprobleme beim Flex-Layout

1. W3C-Versionen von Flex Version 2009 Flag: Anze...

So fügen Sie einem Benutzer in einer Linux-Umgebung Sudo-Berechtigungen hinzu

sudo-Konfigurationsdatei Die Standardkonfiguratio...

Analysieren Sie, wie Sie automatisch Vue-Komponentendokumentation generieren

Inhaltsverzeichnis 1. Aktuelle Situation 2. Commu...

Installationsprozess von Zabbix-Agent auf Kylin V10

1. Laden Sie das Installationspaket herunter Down...

JS Canvas-Oberfläche und Animationseffekte

Inhaltsverzeichnis Überblick Canvas API: Grafiken...

Analyse von Context-Anwendungsszenarien in React

Kontextdefinition und Zweck Der Kontext bietet ei...

Zusammenfassung von 28 gängigen JavaScript-String-Methoden und Verwendungstipps

Inhaltsverzeichnis Vorwort 1. Ermitteln Sie die L...

Zusammenfassung gängiger Fehler beim Entwurf von MySQL-Tabellen

Inhaltsverzeichnis Fehler 1: Zu viele Datenspalte...

WeChat-Applet-Beispiel für die direkte Verwendung von Funktionen in {{ }}

Vorwort Bei der WeChat-Applet-Entwicklung (native...