Richtlinie Vererbung in Verschachtelten Lage der Blöcke
sind die folgenden beiden nginx-server blockt semantisch das gleiche, oder gibt es da einen Unterschied? Funktioniert die JSON-spezifische Konfiguration im ersten Beispiel erbt die Einstellungen der " /" - Standort? Tut es in dem zweiten Beispiel?
server {
location /{
# ...
location ~* \.json$ {
# json-specific settings
}
}
}
server {
location /{
# ...
}
location ~* \.json$ {
# json-specific settings
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vererbung der config-Direktiven in Nginx ist so, dass die Richtlinien können nur vererbt werden, von zusammenhängen auf einer höheren Stufe der Konfiguration Baum und nie von Kontexten in der gleichen oder einer niedrigeren Stufe.
So, ein Standort, der block übernehmen können, von einem anderen Standort aus block, sondern eine verschachtelte location-block kann Erben von der übergeordneten Standort-block.
Ich betonte kann, denn es gibt eine Reihe von verschiedenen Arten von Richtlinien und die Vererbung von Verhalten ist ein wenig anders für jeden.
Gibt es einheitliche Richtlinien Geben, die nur einen Wert oder Satz
der Werte angebracht. Diese werden einfach vererbt Kontexten niedriger
unten die config Baum oder ersetzt innerhalb dieses unteren Rahmen durch neue
Werte. Ein Beispiel ist "index".
Array-Typ-Richtlinien, die passieren mehrere getrennte Werte in einem
array. Diese werden einfach vererbt Kontexten unten
config Baum oder ersetzt innerhalb dieses unteren Rahmen durch neue Werte.
Beachten Sie, dass Sie hinzufügen können, um das array. Änderung Teil ist zu ersetzen
alle. Ein Beispiel ist "proxy_param". Also, wenn Sie definieren proxy_param Ein und
proxy_param B auf der server-Ebene für Instanz, und versuchen Sie dann zu
definieren proxy_param C in einem Ort, Kontext, "A" und "B" wäre
ausgelöscht (auf Standardwerte gesetzt). wie die Definition "C" gemeint hat
ersetzen Sie das array.
Befehl Geben Richtlinien wie "try_files" sind in der Regel nicht
vererbt an alle.
Also spezifisch zu deiner Frage, Richtlinien, definiert in einer Position block-Kontext kann nicht vererbt werden von anderen als in deinem zweiten Beispiel.
Standard-und Array-Typ-Richtlinien definiert in das übergeordnete Lage-block vererbt werden, durch die verschachtelte Position blockieren. Befehl-Typ-Richtlinien definiert in der Eltern-nicht vererbt werden, im Allgemeinen.
proxy_pass
auch ist nicht geerbt durch eine verschachtelte location.uwsgi_pass
auch nicht vererbt.