Nginx location匹配规则

location会尝试根据用户请求中的URI来匹配上面的uri表达式,如果可以匹配,就会选择location{}块中的配置来处理用户请求。匹配方式是多样的。

location[=||*] /uri/ {

​ …

}

~ 波浪写表示执行一个正则匹配,区分大小写

~* 表示执行一个正则匹配,不区分大小写

= 进行普通字符精确匹配

URI匹配模式

location的指令分为两种匹配模式

  1. 普通字符串匹配:以=开头或者没有带正则引导符号(~)规则

    location /uri 普通匹配

    前缀匹配

    匹配采用最长匹配规则,即都匹配的情况下,会走匹配到长度最大的location

    location =/uri 精准匹配

    精准配置的优先级高于普通配置

  2. 正则匹配:以()开头或者(*)开头的表示正则匹配

    location ~* \\.(jpg|png|css|js|gif)$ {
    	root html/images;
    }
    

匹配的优先级

  1. 首先看有没有精准匹配,如果有,则停止匹配过程

  2. 判断普通命中,如果有多个命中,记录下最长的命中结果,记录但不结束

  3. 继续判断正则表达式,按配置里的正则表达顺序为准,由上到下开始匹配,一旦匹配成功一个,立即返回结果并结束

    a) 普通命中,顺序无关,因为按照命中长短来决定

    b) 正则命中,顺序有关,因为是从前往后命中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值