Wie definiere ich eine globale Variable in der nginx conf Datei?
So definieren Sie eine Globale variable in der nginx conf-Datei, definieren Sie eine Globale var, die im http-block,und alle Server und Standorte unten verwenden können.
http{
some confs
...
//define a global var mabe like
set APP_ROOT /home/admin
//and it can be use in all servers and locations below, like
server {
root $APP_ROOT/test1
}
server {
root $APP_ROOT/test2
}
}
Kommentar zu dem Problem
Etwas im server { } block wird vererbt.
Du meinst, wenn ich definiere eine Variable in der ersten server, dann kann ich es verwenden, in allen server-blocks unten?
InformationsquelleAutor der Frage sinory | 2013-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einen kleinen trick. Wenn dieser Wert muss möglich sein, von jeder
server
- block in einemhttp
block, den Sie verwenden könnenmap
Richtlinie. Wie soll das funktionieren?Die
map
Richtlinie ermöglicht die Verwendung einer variable an einer beliebigen Stelle in einemhttp
block, welcher Wert berechnet wird, auf einige map-Taste. Alle sagen-Beispiel:So, jetzt, was bedeutet das für Sie? Sie können die
map
Richtlinie zum festlegen einer globalen Variablen, die für alleserver
Blöcke mit diesem einfachen trick. Sie können diedefault
- Schlüsselwort, um einen Standardwert für Ihre map-Wert. Wie in diesem einfachen Beispiel:In diesem Beispiel berechnen wir den Wert
$my_variable
auf die$host
Wert, aber in der Tat ist es egal, was$host
ist, weil wir immer lalalala, als der Wert unserer variable standardmäßig und ohne weitere Optionen. Jetzt überall in Ihrem code, wenn Sie verwenden$my_variable
in der gleichen Weise wie alle anderen zur Verfügung stehenden Variablen (zum Beispiel erstellt mitset
- Richtlinie) erhalten Sie den Wert lalalalaUnd warum ist das besser als einfach mit den
set
Richtlinie? Da dieset
Richtlinie, wie doc sagt nginx set-Richtlinie ist nur innen zugänglichserver, location and if
Blöcken, so dass es nicht verwendet werden kann für das erstellen von globalen Variablen für eine Reihe vonserver
Blöcke.Docs über
map
Richtlinie gibt es hier: anzeigen-RichtlinieInformationsquelleAutor der Antwort emka86