Estou tendo problemas para entender locais aninhados no nginx. Eu tenho dois locais com algumas diretivas de configuração em comum; portanto, em vez de repetir as diretivas, prefiro repetir o URI usando uma expressão regular:
location ~ /a|/b {
location /a {
}
location /b {
}
}
No entanto, isso dá o erro
nginx: [emerg] location "/a" is outside location "/a|/b" in /etc/nginx/nginx.conf:36
Sem o ou |
parece bom, no entanto.
location ~ /a {
location /a {
}
}
O que estou fazendo errado? Existe uma maneira melhor de fazer isso sem repetir nada? Posso agrupar locais de outra maneira?
Respostas:
Pergunta antiga, mas o problema é porque o local pai é um local de regex enquanto os locais aninhados são locais de prefixo.
Você só pode definir locais de prefixo aninhados quando o local pai também for um local de prefixo:
Quando um local pai é definido por uma regex, todos os locais aninhados também devem ser definidos por regexes:
No entanto, você também pode definir locais de regex aninhados quando o local pai for um local de prefixo:
fonte
/b
gerará um erro?location /a { }
padrão - o pedido é importante?