Nginx location 匹配顺序

location 匹配

~  #匹配一个正则表达式,区分大小写
~* #匹配一个正则表达式,不区分大小写
^~ #匹配普通字符,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
=  #进行普通字符精确匹配
@  #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files


演示:

location = / {
 # 只匹配"/"
}
location / {
 # 匹配所有请求,长字符或者正则表达式会优先匹配
}
location ^~ /images/ {
 # 匹配任何以 /images/ 开始的请求,并停止匹配其它location
}
location ~* .(gif|jpg|jpeg|png)$ {
 # 匹配以 gif, jpg, or jpeg结尾的请求
}


匹配的优先级:

精准匹配->普通匹配->正则匹配

location 匹配的优先级与配置文件中的顺序无关。一般而言,首先进行精准匹配(=),然后进行普通匹配(^~)。如果普通匹配多个规则均命中,则选择最长匹配。然后进行正则匹配,正则匹配与顺序有关。


修改时间 2021-05-11

真诚赞赏,手留余香
赞赏
随机推荐
树妖3
CentOS 磁盘空间相关命令
AI 制作的图标上传到 iconfont 以后丢失描边的解决办法
uniapp 开发笔记(一)
Webpack 概念理解 module、chunk 和 bundle 的区别
LOGO设计的时候为什么要画那些圈圈?
JS触摸拖动div的移动,类似拖动电子地图
MySQL 处理高并发,防止库存超卖(乐观锁和悲观锁)
站着编程两年后我身体上的变化
MySQL备份与恢复,mysqldump命令导入导出数据库