nginx location优先级的深入讲解

 更新时间:2020年09月15日 10:09:02   作者:庄德彪  
这篇文章主要给大家介绍了关于nginx location优先级的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

location表达式类型

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

location优先级说明

在nginx的location和配置中location的顺序没有太大关系。正location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。

以下是按优先级排列说明:

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

location优先级示例 配置项如下:

location = / {
# 仅仅匹配请求 /
[ configuration A ]
}

location / {
# 匹配所有以 / 开头的请求。但是如果有更长的同类型的表达式,则选择更长的表达式。如果有正则表达式可以匹配,则
# 优先匹配正则表达式。
[ configuration B ]
}

location /documents/ {
# 匹配所有以 /documents/ 开头的请求。但是如果有更长的同类型的表达式,则选择更长的表达式。
#如果有正则表达式可以匹配,则优先匹配正则表达式。
[ configuration C ]
}

location ^~ /images/ {
# 匹配所有以 /images/ 开头的表达式,如果匹配成功,则停止匹配查找。所以,即便有符合的正则表达式location,也
# 不会被使用
[ configuration D ]
}

location ~* \.(gif|jpg|jpeg)$ {
# 匹配所有以 gif jpg jpeg结尾的请求。但是 以 /images/开头的请求,将使用 Configuration D
[ configuration E ]
}

请求匹配示例

/ -> configuration A
/index.html -> configuration B
/documents/document.html -> configuration C
/images/1.gif -> configuration D
/documents/1.jpg -> configuration E

注意,以上的匹配和在配置文件中定义的顺序无关。

总结

到此这篇关于nginx location优先级的文章就介绍到这了,更多相关nginx location优先级内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Nginx反向代理实现多端口跳转的实战分享

    使用Nginx反向代理实现多端口跳转的实战分享

    在现代Web开发中,Nginx作为一款高性能的开源反向代理服务器,提供了强大的功能来管理网络流量和路由,本文将介绍如何利用 Nginx 的反向代理功能,以实现多端口跳转的效果,需要的朋友可以参考下
    2024-02-02
  • 简单快速搭建Nginx文件服务器

    简单快速搭建Nginx文件服务器

    这篇文章主要为大家介绍了简单快速搭建Nginx文件服务器方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Nginx动静分离配置实现与说明

    Nginx动静分离配置实现与说明

    这篇文章主要介绍了Nginx动静分离配置实现与说明,需要的朋友可以参考下
    2022-04-04
  • nginx中斜杠(‘/‘)的具体使用

    nginx中斜杠(‘/‘)的具体使用

    在Nginx配置的过程中,斜杠(/)经常使用到,它们不仅可以区分不同的路径,还有其他的作用,本文就详细的介绍了nginx中斜杠(‘/‘)的具体使用,感兴趣的可以了解一下,感兴趣的可以了解一下
    2023-10-10
  • 基于Nginx搭建WebDAV服务的详细过程

    基于Nginx搭建WebDAV服务的详细过程

    在搭建 Joplin 笔记服务的时候,发现了可以通过 WebDAV 服务来实现云笔记的功能,所以本篇就来介绍一下,怎么快速搭建 WebDAV 服务,需要的朋友可以参考下
    2022-12-12
  • Ubuntu使用nginx搭建webdav文件服务器的详细过程

    Ubuntu使用nginx搭建webdav文件服务器的详细过程

    今天通过本文给大家分享Ubuntu使用nginx搭建webdav文件服务器的详细过程,在这小编提示大家在安装nginx时需要先安装nginx-full,具体安装方法跟随小编一起通过本文学习下吧
    2021-05-05
  • nginx提示:500 Internal Server Error错误解决办法

    nginx提示:500 Internal Server Error错误解决办法

    这篇文章主要介绍了 nginx提示:500 Internal Server Error错误解决办法的相关资料,这里提供了解决该问题的详细步骤,希望能帮助到大家,需要的朋友可以参考下
    2017-08-08
  • Nginx代理axios请求以及注意事项详解

    Nginx代理axios请求以及注意事项详解

    这篇文章主要给大家介绍了关于Nginx代理axios请求以及注意事项的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • windows下nginx安装、配置与使用

    windows下nginx安装、配置与使用

    本文主要介绍windows下nginx安装、配置与使用的方法,讲解的比较全面,需要的朋友可以参考一下。
    2016-06-06
  • 记一次nginx配置不当引发的499与failover 机制失效问题

    记一次nginx配置不当引发的499与failover 机制失效问题

    近期在非高峰期也存在499超过告警阈值的偶发情况,多的时候一天几次,少的时候则几天一次,持续一般也就数分钟,经过和小伙伴的共同探究,最后发现之前对于499是客户端主动断开因而和服务端关系不大的想当然认知是错误的,这里记录一下
    2023-05-05

最新评论