官方文档解释
句法: location [ = | ~ | ~* | ^~ ] uri { … }
location @name { … }
默认: -
语境: server, location
如果最长匹配的前缀位置具有“ ^~”修饰符,则不检查正则表达式。
另外,使用“ =”修饰符可以定义URI和位置的精确匹配。如果找到完全匹配,则搜索结束。例如,如果一个“ /”请求经常发生,定义“ location = /”会加快这些请求的处理,因为搜索在第一次比较之后立即终止。这样的位置显然不能包含嵌套位置。
下面举一个例子来说明一下:
location = / {
[配置A]
}
位置 / {
[配置B]
}
位置/文件/ {
[配置C]
}
位置^〜/ images / {
[配置D]
}
位置〜*。(gif | jpg | jpeg)$ {
[配置E]
}
“ /”请求将与配置A匹配,“ /index.html”请求将与配置B匹配,“ /documents/document.html”请求将匹配配置C,“ /images/1.gif”请求将匹配配置D,并且“ /documents/1.jpg”请求将匹配配置E.
“ @”前缀定义了一个命名的位置。这样的位置不用于常规的请求处理,而是用于请求重定向。它们不能嵌套,也不能包含嵌套的位置。