Ich versuche, Nginx ein wenig besser zu verstehen und eine Regex zu bilden, bei der jede URL, die NICHT übereinstimmt, /api/postdataV1
an einen anderen Cluster von Servern weitergeleitet wird. Ich sehe diese beiden Dinge immer wieder an Beispielen ohne Erklärung
location ~ {some regex}
location ~* (some regex}
Meine erste Frage lautet: Was sind diese ~
und ~*
(ich denke, das ~
heißt, ich spezifiziere einen regulären Ausdruck?), Aber wie steht es ~*
dann?
Was ich denke, was ich will, ist das. Wäre das richtig?
location ~ ^/api/postdataV1$ {
#matches to this route to where I want
}
location / {
#This will be everything except /api/postdataV1 I think
}
Wäre das richtig? aber was ist mit ~*
... ich verstehe das nicht
Danke, Dean
nginx location
, der erste schlag ist das :) aber ich muss zugeben, man muss sich an die nginx-dokumentation gewöhnen, esp. Finden Sie das richtige Zeug unter Module-Abschnitt.Antworten:
Wie in der Nginx-Dokumentation angegeben ,
~*
wird bei Regex zwischen Groß- und~
Kleinschreibung unterschieden.Ihre Syntax ist in Ordnung, sie kann jedoch auch ohne regulären Ausdruck umgeschrieben werden (kürzester Speicherort wird beim Abgleich der Anforderungen zuletzt verwendet):
quelle
/api/PostData
nicht ohne paßt~*