1.location分类
一般location分为三大类
(1)精准匹配:location = pass {...} 精确匹配字符串
(2)正则匹配:location ~ pass {...} 按照正则表达式方式匹配
(3)一般匹配:location pass {...} 只要包含pass字符都行
2.location常用匹配规则
= :进行普通字符的精准匹配
^~:按正则表达式方式使用前缀匹配,匹配成功就不再匹配其他location
~:按正则表达式方式区分大小写的匹配
~*:按正则表达式方式不区分大小写的匹配
!~:按正则表达式方式区分大小写的匹配然后取反
!~*:按正则表达式方式不区分大小写的匹配然后取反
@:定义一个location,使用在内部定向时
location 优先级
1.location优先级路径
(1)匹配具体文件
(location = 路径) > (location ^~ 路径) >(location ~* 路径) >(location ~ 路径) >(location 路径) > (location /)
(2)匹配目录
(location = 路径) > (location ^~ 路径) >(location ~ 路径) >(location ~* 路径) >(location 路径) > (location /)
2.location优先级符号
(1)首先精确匹配 =
(2)其次前缀匹配 ^~
(3)其次是按文件中顺序的正则匹配 ~或~*
(4)然后匹配不带任何修饰的前缀匹配
(5)最后是交给 / 通用匹配
3.location 匹配
(1)首先看 优先级:精确>前缀>正则>一般>通用
(2)优先级相同:正则看上下顺序,上面的优先;一般匹配看长度,最长匹配的优先
(3)精确、前缀、正则、一般 都没有匹配到,最后再看通用匹配 一般匹配
4.企业location必选规则
(1)直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,比如说官网。例子:location = / {
(2)有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用,例子:location ^~ /static/ {或location ~* \.(
(3)通用规则,比如用来转发带.php、.jsp后缀的动态请求到后端应用服务器,例子:location / {