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

相关推荐
雪碧聊技术2 小时前
使用Docker,将fastApi项目部署到linux服务器
服务器·docker·fastapi·docker部署fastapi
叮咚侠2 小时前
Ubuntu 24.04 安装zabbix-agent 5.0 服务
linux·ubuntu·zabbix·zabbix-agent
故乡dee云2 小时前
华为云国际服务器连不上怎么办?安全组、端口、IP 和网络排查方法
服务器·网络·华为云
佳児素花痴╮2 小时前
服务器模型、网络调试工具、网络协议头分析
服务器·网络·网络协议
fatcoder4 小时前
玩转Nginx 04 — 反向代理:给 nginx 接上后端
前端·后端·nginx
左手厨刀右手茼蒿4 小时前
数据仓库的架构演进:从MySQL到ClickHouse到数据湖的工程化实践
linux·嵌入式·系统内核
左手厨刀右手茼蒿4 小时前
创业团队技术选型:别用大厂架构解决小团队问题
linux·嵌入式·系统内核
明志数科5 小时前
宇树科技IPO背后的产业逻辑:人形机器人从“讲故事“到“交数据“
运维·服务器·数据库
Data_Journal5 小时前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
bosins5 小时前
将 Hyper-V 上的 Ubuntu 虚拟机内容迁移到 WSL (Windows Subsystem for Linux) 中
linux·windows·ubuntu