我是靠谱客的博主 跳跃小丸子,最近开发中收集的这篇文章主要介绍nginx location配置规则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

nginx location匹配是按照一定的规则优先级来进行的,就像运算符有优先级一样,所以并不是按照配置书写顺序来匹配的。具体优先级如下:

第一优先级:等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。
第二优先级:^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
第三优先级:正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。
第四优先级:常规字符串匹配类型。按前缀匹配。

(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)

location表达式类型:

~ 表⽰执⾏⼀个正则匹配,区分⼤⼩写
~* 表⽰执⾏⼀个正则匹配,不区分⼤⼩写
^~ 表⽰普通字符匹配。使⽤前缀匹配。如果匹配成功,则不再匹配其他location。
= 进⾏普通字符精确匹配。也就是完全匹配。
@ "@" 定义⼀个命名的 location,使⽤在内部定向时,例如 error_page, try_files

location uri正则表达式

  1. . :匹配除换行符以外的任意字符
  2. ? :重复0次或1次
  3. + :重复1次或更多次
  4. * :重复0次或更多次
  5. d :匹配数字
  6. ^ :匹配字符串的开始
  7. $ :匹配字符串的结束
  8. {n} :重复n次
  9. {n,} :重复n次或更多次
  10. [c] :匹配单个字符c
  11. [a-z] :匹配a-z小写字母的任意一个
  12. (a|b|c) : 属线表示匹配任意一种情况,每种情况使用竖线分隔,一般使用小括号括括住,匹配符合a字符 或是b字符 或是c字符的字符串
  13.  反斜杠:用于转义特殊字符
  14. 小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。正则里面容易让人困惑的是转义特殊字符。

优先级搜索问题:

不同类型的location映射决定是否继续向下搜索,等号类型、^~类型:一旦匹配上就停止搜索了,不会再匹配其他location了正则表达式类型(~ ~*),常规字符串匹配类型/xxx/ : 匹配到之后,还会继续搜索其他其它location,直到找到优先级最高的,或者找到第一种情况而停止搜索

最后

以上就是跳跃小丸子为你收集整理的nginx location配置规则的全部内容,希望文章能够帮你解决nginx location配置规则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部