nginx localtion 匹配规则

1、语法规则

语法规则:location[=|~|^~*|^~]/uri/{... }
表示精确匹配,这个优先级也是最高的
^~ 表示 uri 以某个常规字符串开头,理解为匹配 url 路径即可。 nginx 不对 url 做编码,因此请求为
/image/20%/aa,可以被规则^~ /image/ /aa 匹配到(注意是空格)。
~ 表示区分大小写的正则匹配
~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写)
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则
/ 通用匹配,任何请求都会匹配到,默认匹配.

2、匹配规则

首先匹配 =,其次匹配~~,其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

例如 下面的配置规则如下:
location = / {
echo "=/";
}
location = /nginx {
echo "nginx";
}
location ~ \.(gif|jpg|png|js|css)$ {
echo "image/jpg/png";
}
location ~* \.png$ {
echo "png";
}
location ^~ /image/ {
echo "image";
}
为了验证使用哪个规则, 我们使用linux 的curl 命令,以访问 http://test.abc.com 的资源为例
当执行curl http://test.abc.com 返回=/。 当执行curl http://test.abc.com/nginx 返回nginx
当执行 当执行curl http://test.abc.com/xxx/122.PNG 返回png。当执行curl http://test.abc.com/xxx/122.png 返回image/jpg/png, 当执行curl http://test.abc.com/image/122.png 返回 image

相关推荐
EasyNVR9 分钟前
基于WebRTC与AI大模型接入EasyRTC:打造轻量级、高实时、强互动的嵌入式音视频解决方案
运维·服务器·微信·小程序·webrtc·p2p·智能硬件
致奋斗的我们35 分钟前
HAProxy介绍与编译安装
linux·汇编·数据库·mysql·青少年编程·haproxy·openeurler
waves浪游1 小时前
Linux基本指令(上)
linux·运维·服务器
web182854825121 小时前
nginx 部署前端vue项目
前端·vue.js·nginx
不确定性确定你我1 小时前
`sh` 与 `bash` 的区别详解
linux·bash·运维开发
是北欢吆2 小时前
QQ登录测试用例报告
运维·服务器·测试用例
9毫米的幻想2 小时前
【Linux系统】—— 冯诺依曼体系结构与操作系统初理解
linux·运维·服务器·c语言·c++
leoufung4 小时前
vim 多个关键字高亮插件介绍
linux·编辑器·vim
Nerd Nirvana7 小时前
软考—系统架构设计(案例 | 论文)
linux·系统架构·软件工程·软考·计算机基础
勤奋的凯尔森同学8 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin