1.功能
location模块是配置在server模块中的,每个server模块可以配置多个location块,它主要作用是基于ng服务器收到的请求字符串,对除虚机名称之外的字符串进行匹配,对特定的字符串进行处理。也可实现地址定向、数据缓存、应答控制等功能。
2.匹配优先级
精准匹配(=):只有当请求的URL与指定的URL完全相同时才会匹配。 这种优先级最高
前缀匹配(^~):只有当请求的URL以指定的URL开头时才会匹配。这种优先级次之。
正则匹配(~和~*):只有当请求的URL与指定的正则表达式匹配时才会匹配。其中波浪线区分大小写,~*不区分大小写。这种优先级较低。
普通匹配:没有修饰符的位置块会按照配置文件中出现的顺序进行匹配。这种优先级最低。
补充:在实际配置中,nginx会按照这个优先级顺序进行逐一检测每个location块,知道找到最匹配的位置。所以,合理的安排location块的顺序和类型可以有效的控制请求的处理流程,在配置ng时,可以把优先级最高的放到最前边,由高到低依次配置。
3.last跟break
last:本条重写规则匹配完成后,若本location中在last之后还有其他操作,则会终止其他操作,并重新发起请求继续匹配新的location URI规则;浏览器地址栏URL地址不变。
break:本条重写规则匹配完成后,若本location在break之后还有其他操作,则会继续进行其他操作,但是会终止匹配后续重写规则,等完成后终止匹配新的location URI规则; 浏览器地址栏URL地址不变。