Überblick
Nginx kann Variablen verwenden, um die Konfiguration zu vereinfachen und die Konfigurationsflexibilität zu verbessern. Auf alle Variablenwerte kann folgendermaßen verwiesen werden:
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 sich vom Wert von request_uri unterscheidet , der vom Browser übergeben wird , 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
|