Nginx中Location配置超详细讲解

Location 是 Nginx 中一个非常核心的配置,关于Location,举个简单的配置例子:,当访问 http://10.0.7.115:80 的时候,返回的是 /data/app/index.html 文件。,Location具体语法:,重点看方括号中的 [ = | ~ | ~* | ^~ ],其中 | 分隔的内容表示你可能会用到的语法,其中:,= 表示精确匹配:,例如:,~ 表示区分大小写的正则匹配:,例如:,~* 表示不区分大小写的正则匹配:,例如:,^~ 表示 uri 以某个字符串开头:,例如:,/ 表示通用匹配:,例如:,例如:,Location的定义分为两种:,当存在多个 Location 的时候,匹配的顺序为:,检查使用前缀字符串的 locations,在使用前缀字符串的 locations 中选择最长匹配的,并将结果进行储存;,总结:,在顺序上:,在 优先级上:,我们举几个简单的例子进行说明,请求URI如下:,示例一:,配置:,匹配结果:,注:虽然 /doc 也能匹配到,但 在顺序上,前缀字符串顺序不重要,按照匹配长度来确定。,示例二:,匹配结果:,注:虽然 ~ ^/docu 也能匹配到,但 正则表达式则按照定义顺序。,示例三:,匹配结果:,注:虽然 ~ ^/docu 也能匹配到,但 ^~优先级更高。,示例四:,匹配结果:,注:虽然 /document 也能匹配到,但 正则的优先级更高。,当我们这样设置 root 的时候:,当请求 /i/top.gif/data/w3/i/top.gif 会被返回。,当我们这样设置 alias 的时候:,当请求 /i/top.gif/data/w3/images/top.gif 会被返回。,两者的区别:,server 和 location 中都可以使用 root,举个例子:,如果两者都出现,是怎样的优先级呢?,简单的来说,就是 就近原则,如果 location 中能匹配到,就是用 location 中的 root 配置,忽略 server 中的 root,当 location 中匹配不到的时候,则使用 server 中的 root 配置。,
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册