nginxのlocationマッチングのルールは何ですか?
nginxのlocationマッチングルールは以下の通りです:
- 厳密に一致する場合(=):URIが指定された場所と完全に一致する場合は、その場所を使用します。例えば、location = /testは/testというURIにのみ一致します。
- プレフィックスマッチ(^〜):URIが指定されたlocationで始まる場合、そのlocationを使用します。このルールは正規表現マッチングよりも優先されます。例えば、location ^〜 /images/は、/images/で始まるURI(例:/images/logo.png)に一致します。
- 正規表現のマッチング(~および~*):正規表現を使用してマッチングを行います。~は大文字と小文字を区別し、~*は大文字と小文字を区別しません。例えば、location ~ \.(jpg|jpeg|png)$の場合、.jpg、.jpeg、あるいは.pngで終わるURIにマッチします。
- 最長一致プレフィックス: 正確な一致、プレフィックス一致、または正規表現にマッチしない場合、最長一致プレフィックスの場所を使用します。 たとえば、location /はどんなURIにも一致します。
複数の場所が条件に一致する場合、最初に一致した場所が使用されますので、一致規則の順序に注意してください。