Was ist der Sinn der Definition location / { }
, da dies, wenn ich es richtig verstehe, mit allen potenziellen URIs übereinstimmt und jeder Kampf gegen einen Standort mit einer spezifischeren URI „verliert“ wird? Meine Begründung ist, dass Sie einfach alle Standardwerte direkt in den Serverblock einfügen können, anstatt ein zu definieren location / { }
.
Wenn ich also richtig liege, hat dies keinen Zweck:
server {
root /www/html;
location / {
root /www/html;
}
}
PS: Ich bin ziemlich neu bei Nginx, also sagen Sie mir ruhig, ob ich es besser formulieren könnte, um die Frage nützlicher/leichter zu finden.
Antwort1
Sie haben Recht, Ihr konkretes Beispiel erfüllt keinen Zweck. Aber es gibt viele Nginx-Direktiven, die auf Serverebene nicht funktionieren
Zum Beispiel:
server {
proxy_pass http://localhost:8080;
}
^ das funktioniert nicht.
v das funktioniert.
server {
location / {
proxy_pass http://localhost:8080;
}
}
Anweisungen auf Serverebene sind Standardwerte. Es gibt Anweisungen, die nur auf Serverebene funktionieren, und es gibt Anweisungen, die nur auf Standortebene funktionieren.
Das sind zwei grundverschiedene Dinge. Ihr Beispiel hat nur die gleichen Konsequenzen.