location语法详解

location语法详解

注意:以下所有命令在centos7.6环境下测试,其他linux环境请自行测试

注意:在linux中,不是管理员登录,最好在指令前加上sudo提权,避免权限不够执行失败带来的麻烦,以下命令请都加上sudo,这是一个好习惯。

nginx下载安装配置

nginx常用命令

location是Nginx中用于URL匹配和请求分发的核心指令之一,其强大的路径匹配能力使得Nginx在Web服务器和反向代理场景中表现出色。

基本语法

location [=|~|~*|^~] /uri/ { 
	... 
}
  • [=|~|~*|^~|@]:修饰符,用于定义URI的匹配方式,也可以不使用修饰符即为普通匹配。
  • /uri/:要匹配的URI。

修饰符含义

  • =:精确匹配。
  • ~:区分大小写匹配的正则匹配。
  • !~:区分大小写不匹配的正则匹配。
  • ~*:不区分大小写匹配的正则匹配。
  • !~*:不区分大小写不匹配的正则匹配。
  • ^~:前缀匹配。如果匹配上不再检查正则表达式匹配和普通匹配。
  • 无修饰符:普通匹配,记录匹配上的普通匹配,只保留最长的匹配,若存在前缀匹配或正则匹配,匹配到直接返回,匹配不到才返回最长的普通匹配。
  • /:通用匹配,匹配任何请求。如果其他匹配都未匹配上,则采用此配置块。

匹配顺序和优先级

当Nginx收到一个HTTP请求时,它会按照以下顺序进行location的匹配:

  1. 先判断精准匹配=,如果命中,立即返回结果并结束解析过程。
  2. 如果没有精确匹配命中,则检查是否有前缀匹配^~命中。如果有,且找到命中的最长的前缀匹配,立即返回结果并结束解析过程。
  3. 如果没有前缀匹配命中,则检查是否有不带修饰符的普通匹配命中。如果有,记录匹配信息,找到命中的最长的普通匹配并继续正则匹配。
  4. 如果没有前缀匹配命中,无论有没有普通匹配命中,接着按照配置文件中的顺序从上到下依次进行正则匹配(~~*!~!~*。一旦找到第一个命中的正则匹配,立即返回结果并结束解析过程。如果所有正则匹配都未命中,但是有命中的普通匹配,立即返回结果并结束解析过程。
  5. 如果以上的匹配都未命中,则通用匹配/命中,立即返回结果并结束解析过程。

参考文献

韩顺平必学必会技术栈-nginx
https://blog.csdn.net/gusushantang/article/details/143746974
https://zhuanlan.zhihu.com/p/464571688
posted @   不要划水  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示