Nginx locaion配置指令介绍

概述

location配置指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应

location匹配参数

参数解释
location后没有参数直接跟着URI,表示前缀匹配,代表跟请求中的URI从头开始匹配。
~执行一个正则匹配,区分大小写。
~*执行一个正则匹配,不区分大小写。
^~普通字符匹配,多用来匹配目录。
=执行普通字符精确匹配。
@“@” 定义一个命名的 location,@定义的locaiton名字一般用在内部定向,例如error_page, try_files命令中。它的功能类似于编程中的goto。

location匹配顺序

location的匹配并不完全按照它们在配置文件中上下顺序来匹配,请求URI会按如下规则跟server里配置的location匹配

匹配优先级

首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止 匹配,按当前匹配规则处理请求。

匹配示例
events {
}
http {
  server {
    # 匹配URL: http://127.0.0.1/*
    location / {
      return 200 "/"; 
    } 
    # 匹配URL:http://127.0.0.1/
    location = / {
      return 200 "=/"; 
    } 
    # 匹配URL: http://127.0.0.1/nginx
    location = /nginx {
      return 200 "=/nginx"; 
    }
    # 匹配URL: http://127.0.0.1/xxx/1111.PNG 
    location ~* \.png$ {
      return 200 "all-png"; 
    } 
    # 匹配URL: http://127.0.0.1/xxx/1111.jpg
    location ~ \.(gif|jpg|png|js|css)$ {
      return 200 "small-gif/jpg/png"; 
    } 
    #  匹配URL:http://127.0.0.1/static/1111.png 
    location ^~ /static/ {
      return 200 "static"; 
    } 
  }
}

命名location

带有"@"的location是用来定义一个命名的location,这种location不参与请求匹配,一般用在内部定向。例如用在error_page, try_files命令中。它的功能类似于编程中的goto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值