我无法理解 nginx 中的嵌套位置。我有两个位置有一些共同的配置指令,所以与其重复这些指令,我更愿意使用正则表达式重复 URI:
location ~ /a|/b {
location /a {
}
location /b {
}
}
但是,这给出了错误
nginx: [emerg] location "/a" is outside location "/a|/b" in /etc/nginx/nginx.conf:36
不过,没有 or|
似乎还可以。
location ~ /a {
location /a {
}
}
我究竟做错了什么?有没有更好的方法来做到这一点而不重复任何事情?我可以用另一种方式对位置进行分组吗?
老问题,但问题是因为父位置是正则表达式位置,而嵌套位置是前缀位置。
当父位置由正则表达式定义时,任何嵌套位置也必须由正则表达式定义:
当父位置也是前缀位置时,您只能定义嵌套前缀位置:
但是,当父位置是前缀位置时,您可以定义嵌套的正则表达式位置: