51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

nginx路由匹配指令location用法

# nginx 路由匹配指令 location 用法 {#nginx-路由匹配指令-location-用法}

本文总结 nginx 的路由匹配指令 location 的用法。location 指令用于匹配用户请求的 url,匹配后会进入对应的逻辑块,该逻辑块中可以指定一个静态网站,也可以是反向代理到某个服务等。location 指令有多种匹配规则,同时这些规则还有匹配优先级。

# 1. 匹配规则 {#_1-匹配规则}

# 1.1 精确匹配 {#_1-1-精确匹配}

修饰符: =
示例:

location = /abcd {

}

# 1.2 前缀匹配 {#_1-2-前缀匹配}

前缀匹配又包含 2 种情况:

  • 有修饰符的前缀匹配
    若使用修饰符^~, 则匹配优先级高于正则匹配,否则优先级最低。

    location ^~ /doc {

    }

  • 无修饰符的前缀匹配

    location /doc {

    }

# 1.3 按文件中顺序的正则匹配 {#_1-3-按文件中顺序的正则匹配}

正则匹配规则的书写顺序很重要,若某个路由地址同时匹配了多个正则规则,则启用第一个被匹配的规则。

正则匹配包含 2 种情况:

  • 区分大小写的正则匹配
    使用修饰符~

    location ~ ^/abcd$ {

    }

  • 不区分大小写的正则匹配
    使用修饰符~*

    location ~* ^/abcd$ {

    }

# 2. 匹配优先级 {#_2-匹配优先级}

若某个路由地址同时符合多个匹配规则时, 按如下优先级匹配:

  • 精确匹配 =
  • 有修饰符的前缀匹配 ^~(立刻停止后续的正则搜索)
  • 按文件中顺序的正则匹配 ~或~*
  • 无修饰的前缀匹配。

# 3. 参考网站 {#_3-参考网站}

Nginx location 匹配 (opens new window)

赞(5)
未经允许不得转载:工具盒子 » nginx路由匹配指令location用法