nginx location

本文详细解析了Nginx中location配置的语法与匹配规则,包括不同修饰符的作用及匹配流程,特别针对正则表达式的使用进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nginx location 


Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default:
Context: server, location


修饰符解释
= 精确匹配
^~ 前缀匹配
无 前缀匹配
~ 区分大小写正则比配
~* 不区分大小正则匹配


@name 内部跳转用,不能嵌套和被嵌套


匹配规则


1,精确匹配(=)成功,则立即停止
2,匹配所有前缀匹配,记住最长前缀匹配的loaction
3,如果最长前缀匹配location是 ^~,则停止
4,然后按照书写顺序匹配正则location,找到则停止
5,如果没有找到匹配的正则location,则用之前找到的最长前缀匹配location
6,如果匹配到合适的location,则返回404


以上规则第6步有一个例外,当前缀匹配(空,^~)串以/结尾(like /app/)时且请求被 proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, or memcached_pass处理
时,当请求 /app (没有结尾的/)(/app没有合适的匹配)时会返回301 location: /app/,如果这不是期望的结果,
应该用 = 或正则匹配


ps:
1,location 里的正则支持捕获
2,匹配的uri最初是解码后的uri,发生内部跳转后可能会跟着变化
3,嵌套location还没有怎明白


参考
http://nginx.org/en/docs/http/ngx_http_core_module.html#location
https://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值