gpt4 book ai didi

nginx - 关于 nginx location/{} 和 location = {} 的优先级

转载 作者:行者123 更新时间:2023-12-05 05:18:39 24 4
gpt4 key购买 nike

在学习nginx location配置的过程中,有一些疑问,这里是我的例子。

文件结构如下:test1/index.htmltest2/index.html

nginx.conf 位置部分如下所示:

    location = / {
root test1;
index index.html;
# deny all;
}
location / {
root test2;
index index.html;
}

问题是,当我发出 curl -v http://host/ 时,我得到了 test2/index.html 的页面,但是当我去掉 location =/{} 部分的 # 时,结果将是 403 禁止。谁能解释为什么?当location = same_uri {A}和location same_uri {B}都在配置文件中时,哪个配置匹配[A或B]?非常感谢。

http://nginx.org/en/docs/http/ngx_http_core_module.html#location

最佳答案

当你请求URI /时,nginx会处理两个请求。

第一个请求(针对 URI /)由 location =/ block 处理,因为它具有最高优先级。该 block 的功能是将请求更改为 /index.html 并重新开始搜索匹配的 location block 。

第二个请求(针对 URI /index.html)由 location/ block 处理,因为它匹配任何不匹配更具体 位置

因此最终响应来自第二个 location block ,但两个 block 都参与评估访问。

参见 this document location 语法和 this documentindex 指令上。

关于nginx - 关于 nginx location/{} 和 location = {} 的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47483789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com