location语法详解
location语法详解
注意:以下所有命令在centos7.6环境下测试,其他linux环境请自行测试
注意:在linux中,不是管理员登录,最好在指令前加上sudo
提权,避免权限不够执行失败带来的麻烦,以下命令请都加上sudo,这是一个好习惯。
nginx下载安装配置
nginx常用命令
location
是Nginx中用于URL匹配和请求分发的核心指令之一,其强大的路径匹配能力使得Nginx在Web服务器和反向代理场景中表现出色。
基本语法
location [=|~|~*|^~] /uri/ {
...
}
[=|~|~*|^~|@]
:修饰符,用于定义URI的匹配方式,也可以不使用修饰符即为普通匹配。/uri/
:要匹配的URI。
修饰符含义
=
:精确匹配。~
:区分大小写匹配的正则匹配。!~
:区分大小写不匹配的正则匹配。~*
:不区分大小写匹配的正则匹配。!~*
:不区分大小写不匹配的正则匹配。^~
:前缀匹配。如果匹配上不再检查正则表达式匹配和普通匹配。无修饰符
:普通匹配,记录匹配上的普通匹配,只保留最长的匹配,若存在前缀匹配或正则匹配,匹配到直接返回,匹配不到才返回最长的普通匹配。/
:通用匹配,匹配任何请求。如果其他匹配都未匹配上,则采用此配置块。
匹配顺序和优先级
当Nginx收到一个HTTP请求时,它会按照以下顺序进行location的匹配:
- 先判断精准匹配
=
,如果命中,立即返回结果并结束解析过程。 - 如果没有精确匹配命中,则检查是否有前缀匹配
^~
命中。如果有,且找到命中的最长的前缀匹配,立即返回结果并结束解析过程。 - 如果没有前缀匹配命中,则检查是否有不带修饰符的普通匹配命中。如果有,记录匹配信息,找到命中的最长的普通匹配并继续正则匹配。
- 如果没有前缀匹配命中,无论有没有普通匹配命中,接着按照配置文件中的顺序从上到下依次进行正则匹配(
~
或~*
或!~
或!~*
)。一旦找到第一个命中的正则匹配,立即返回结果并结束解析过程。如果所有正则匹配都未命中,但是有命中的普通匹配,立即返回结果并结束解析过程。 - 如果以上的匹配都未命中,则通用匹配
/
命中,立即返回结果并结束解析过程。
参考文献
韩顺平必学必会技术栈-nginx
https://blog.csdn.net/gusushantang/article/details/143746974
https://zhuanlan.zhihu.com/p/464571688
本文来自博客园,作者:不要划水,转载请注明原文链接:https://www.cnblogs.com/shui-notes/p/18697831
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)