Ich habe hier ein paar Fragen und Antworten gefunden, die diese Syntax verwenden:
location @default {
# ...
}
location /somewhere {
try_files $uri @default;
}
Ich habe hoch und niedrig nach den Googles gesucht und kann anscheinend keine Dokumentation finden. Was bedeutet es und wie wird es in der Praxis eingesetzt? Ist es eine Art Variablendeklaration und -zuweisung? Entschuldigung für die Anfängerfrage.
In dem Beispiel, das Sie in Ihrer Frage zitieren:
Wenn die eingehende Anforderung unter http: // your-domain / somewhere empfangen wird , stimmt der Speicherort mit / somewhere überein, und es wird an zwei Stellen nacheinander versucht, eine Antwort zu finden, wie in der Anweisung try_files angegeben, und beim ersten erfolgreichen Versuch geantwortet.
location @default
Direktive angegeben. Ein named_location entspricht niemals einer eingehenden Anfrage und wird als Referenz verwendet, um die Antwort in anderen Location-Direktiven anzugeben.Auf diese Weise kann eine if- Anweisung vermieden werden (wenn die Datei vorhanden ist, verwenden Sie sie, andernfalls antworten Sie wie in der Anweisung location @default angegeben). Es kann also als Abkürzung für eine if-Bedingung verwendet werden. "If" -Anweisungen werden von den Nginx-Autoren definitiv "missbilligt" ( wenn es böse ist ), da sie einige Einschränkungen haben und möglicherweise nicht das erwartete Ergebnis liefern.
quelle