nginx 中的位置指令仅适用于 root,嵌套在 / 中

nginx 中的位置指令仅适用于 root,嵌套在 / 中

我有一个正在运行的 proxy_pass 并且希望某些配置仅适用于 root。

我试过了

location / {
   proxy_pass http://foo.com/
}

location = / {
   subs_filter 'foo' 'bar';
}

但是我从 foo.com 收到 404 - 我该如何让 subs_filter 仅适用于根?

答案1

对于 nginx,仅使用“一个”匹配的位置块;在问题中,这意味着对于 url/没有 proxy_pass - 它会将请求视为对根目录中(如果未配置,则为默认)文件的请求。

文档中有一个与该问题非常相似的例子:

location /user/ {
    proxy_pass http://user.example.com;
}

location = /user {
    proxy_pass http://login.example.com;
}

将其应用于问题唯一缺少的就是将 proxy_pass 添加到= /位置块,即

location / {
   proxy_pass http://foo.com/
}

location = / {
   proxy_pass http://foo.com/
   subs_filter 'foo' 'bar';
}

相关内容