nginx location块

location 块有5中写法,按优先级从高到低,依次如下:

类型语法示例匹配规则优先级
精确匹配location = /path只匹配完全相同的路径最高
优先前缀匹配location ^~ /prefix匹配指定前缀 符合后不在选择其他适合的正则匹配次高
正则匹配location ~ \.php$区分大小写的正则匹配
正则匹配(忽略大小写)location ~* .(jpg|png)$不区分大小写的正则匹配
普通前缀匹配location /匹配任意以指定前缀开头的路径最低

正则匹配之间的优先级取决于先后顺序

graph TD
    A[请求URI] --> B{精确匹配?}
    B -- 是 --> C[使用精确匹配]
    B -- 否 --> D{检查前缀匹配}
    D --> E[记录最长前缀匹配]
    E --> F{最长前缀有 ^~ ?}
    F -- 是 --> G[使用该前缀匹配]
    F -- 否 --> H{按顺序检查正则匹配}
    H -- 匹配到? --> I[使用第一个匹配的正则]
    H -- 未匹配 --> J[使用记录的前缀匹配]

相关笔记