nginx location 配置规则

1.Location 前缀含义

匹配符号匹配规则匹配优先级
=精确匹配1
^~以某个字符串开头2
~区分大小写的正则匹配3
~*不区分大小写的正则4
!~区分大小写不匹配的正则5
!~*不区分大小写不匹配的正则6
/通用匹配,匹配所有请求7

2.案例展示

(1)匹配符 = (精确匹配 )

location = / {} 与 location / {} 
* 前一个是精确匹配,只响应/请求,所有/xxx或/xxx/xxxx类的请求都不会以前缀的形式匹配到它
* 后一个是只要以 / 为前缀的请求都会被匹配到。如:/abc , /test/abc, /test/abc/aaaa 

(2)匹配符 ^~(以某个字符串开头 )

location ^~ /api/test {}
意思是关闭正则匹配,当搜索到这个普通匹配模式后,将不再继续搜索正则匹配模式。

(3)匹配符 ~ (区分大小写的正则匹配)

location ~ /hello.+.html$ {

}

(4)匹配符 ~*(不区分大小写的正则)

location ~*  /hello {

}

(5)匹配符 !~(区分大小写不匹配的正则)

location !~  /hello {

}

(6)匹配符 !~*(不区分大小写不匹配的正则)

location !~* /hello {

}

(7)匹配符 / (通用匹配,匹配所有请求)

location /api/test {}
location /api/test/t001 {} // 优先匹配该配置
正则表达式学习地址:

https://c.runoob.com/front-end/854

3.实际案例

http {
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
            # deny all; 拒绝请求,返回403
            # allow all; 允许请求
        }

        location /abc {
            deny all;
        }

        location ~ /.+\.jsp$ {
            proxy_pass http://location:9090;
        }

        # 匹配所有/test路径下的jsp文件
        location ~ /test/.+\.jsp$ {
            proxy_pass http://localhost:8080;
        }

        # 定义各类错误页
        error_page 404  /404.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # @类似于变量定义
        # error_page 403 http://blog.youkuaiyun.com; #这种定义不允许,需求利用@定义临时变量来实现
        error_page 403 @page403;
        location @page403 {
            proxy_pass http://blog.youkuaiyun.com;
        } 
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值