前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx location匹配方式

nginx location匹配方式

原创
作者头像
saosir
修改2019-08-13 19:54:11
1.2K0
修改2019-08-13 19:54:11
举报
  • location 匹配方式
    • 前缀匹配
    • 精确匹配 =
    • 正则匹配 ~
    • 示例
    • location 前缀匹配中的 slash

location 匹配方式

基本语法

代码语言:txt
复制
Syntax: location [= | ~ | ~* | ^~] uri { ... }
location @name {...}
Default: —
Context: server, location

前缀匹配

遵循最长匹配规则,假设一个请求匹配到了两个普通规则,则选择匹配长度最大的

location /{

}

location /test{

}

location ^~ /images {

}

如果匹配 ^~ /images 不再进行正则匹配

精确匹配 =

精确匹配之后停止匹配后面 location

location = /{

}

正则匹配 ~

~ 区分大小写的匹配:

location ~ ^*.php${

}

~* 不区分大小写的匹配:

location ~ ^.php${

}

示例

代码语言:txt
复制
location = / {
    [ configuration A ]
}

location / {
    [ configuration B ]
}

location /documents/ {
    [ configuration C ]
}

location ^~ /images/ {
    [ configuration D ]
}

location ~* \.(gif|jpg|jpeg)$ {
    [ configuration E ]
}
  • / 精确匹配 A
  • /index.html 最长匹配 B(正则搜索未发现匹配)
  • /documents/document.html 最长匹配 C(正则搜索未发现匹配)
  • /images/1.gif 最长匹配 D(由于存在^~不会进行正则匹配,因此不会进到 E)
  • /documents/1.jpg 正则匹配 E(最长匹配 C,但是C没有^~,搜索发现匹配正则 E,因此不会进到 C)

location 前缀匹配中的 slash

如果location为前缀匹配,url以/结尾,并且请求会被 proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass或者grpc_pass中的一个处理,如果请求结尾不带/,nginx会返回一个 301 重定向,如:

代码语言:txt
复制
location /test/ {
    proxy_pass http://localhost:8080
}

当请求为 /test 时候,nginx返回 301 重定向到 /test/

解决办法:

代码语言:txt
复制
location /test/ {
    proxy_pass http://user.example.com;
}

location = /test {
    proxy_pass http://login.example.com;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • location 匹配方式
    • 前缀匹配
      • 精确匹配 =
        • 正则匹配 ~
          • 示例
            • location 前缀匹配中的 slash
            相关产品与服务
            云服务器
            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档