眼前多少难甘事,自古男儿当自强。这篇文章主要讲述Nginx之location模块说明相关的知识,希望能为你提供帮助。
nginx由内核和模块组成,location是Nginx配置中的一个指令,用于访问的URL匹配。location 是在 server 块中配置,用来通过匹配接收的uri来实现分类处理不同的请求。
location [ = | ~ | ~* | ^~ ] uri...
=--- 精确匹配网站uri资源信息
~--- 区分大小写匹配网站uri资源信息
~*--- 不区分大小写匹配网站uri资源信息
^~--- 优先匹配网站uri资源信息
/image/--- 指定匹配网站资源目录信息
/--- 默认匹配网站资源信息
!--- 对匹配的内容进行取反
^~ 对URI的最左边部分做匹配检查,不区分字符大小写
~对URI做正则表达式模式匹配,区分字符大小写
~* 对URI做正则表达式模式匹配,不区分字符大小写
匹配优先级从高到低:
精确匹配(=)、^~、~、~*、不带任何符号的location
=、^、/属于普通字符串匹配,Location 、~*属于正则表达式匹配,Location优先级与其在Nginx.conf配置文件中的先后顺序无关。
Location规则匹配优先级
(location =) >
(location 完整路径) >
(location ^~ 路径) >
(location ~|~* 正则顺序) >
(location 部分起始路径) >
(location/)
1、location先进行"="或"完整路径"的精确匹配,如:location =/www/index.html
2、^~字符串匹配,如: location ^~ /flv/
3、~和~正则匹配,如: location ~ .(html|css)$
4、目录或部分起始路径匹配,如: location /image/
5、默认匹配 location /
官方案例
location = /
[ configuration A ]--- 优先级最高 1 精确匹配
location /--- 所有匹配都不满足时候,优先级最低,匹配默认location 5
[ configuration B ]
location /documents/--- 根据资源目录进行匹配4 目录或部分路径匹配
[ configuration C ]
location ^~ /images/--- 优先匹配 2字符串匹配
[ configuration D ]
location ~* \\.(gif|jpg|jpeg)$--- 不区分大小写匹配网站资源3 正则匹配
[ configuration E ]
实验配置
"="
精确匹配
请求要和表达式一致才匹配成功
location = /
.....
# 只匹配http://abc.com
# http://abc.com [匹配成功]
# http://abc.com/index [匹配失败]
"~"
大小写敏感
location ~ /Example/
.....
#http://abc.com/Example/ [匹配成功]
#http://abc.com/example/ [匹配失败]
"~*"
大小写忽略
location ~* /Example/
.....
# 则会忽略 uri 部分的大小写
#http://abc.com/test/Example/ [匹配成功]
#http://abc.com/example/ [匹配成功]
"^~"
只匹配以 uri 开头
location ^~ /index/
.....
#以 /index/ 开头的请求,都会匹配上
#http://abc.com/index/index.page[匹配成功]
#http://abc.com/error/error.page [匹配失败]
"@"
nginx内部跳转
location /index/
error_page 404 @index_error;
location @index_error
.....
#以 /index/ 开头的请求,如果链接的状态为 404。则会匹配到 @index_error 这条规则上。
【Nginx之location模块说明】location匹配的是nginx的$request_uri变量。
推荐阅读
- 我们公司是如何做到高效并行测试的()
- 浅析 Web3.0 DApp(去中心化应用程序)设计架构
- GitHub注册-创建数据库-本地项目推送GitHub远程数据库-(入门级教程)
- Kubernetes部署
- 被悟空熊炸出的老博主们
- 70行JavaScript代码实现除夕夜倒计时 零基础也能学会~
- 如何在Node.js中将文本转换为语音()
- 如何在JavaScript中将Map键转换为数组()
- 如何在PHP中将数组转换为SimpleXML()