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

相关推荐
maosheng114614 分钟前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken1 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2911 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C1 小时前
CPU Cache
linux·cache
Hoshino.412 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
恒创科技HK2 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
播播资源4 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry4 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
twc8294 小时前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
lay_liu4 小时前
Linux安装redis
linux·运维·redis