Pergunta antiga, mas o problema é que o local pai é um local regex, enquanto os locais aninhados são locais de prefixo.
Você só pode definir locais de prefixo aninhado quando o local pai também é um local de prefixo:
location /a {
location /a {
# You can also skip this location and just write
# your code directly under the parent location
}
location /a/b {
...
}
}
Quando um local pai é definido por um regex, todos os locais aninhados também devem ser definidos por regexes:
location ~ ^/(a|b) {
location ~ ^/a {
...
}
location ~ ^/b {
...
}
}
No entanto, você também pode definir locais de regex aninhados quando o local pai for um local de prefixo:
location /a/b {
location ~ /a {
...
}
location ~ /b {
...
}
}