Comandos como if
, try_files
, proxy_pass
e uwsgi_pass
não são herdados por blocos de localização aninhados. Outras configurações como auth_ldap
são herdadas.
Não consigo encontrar nenhuma documentação oficial sobre quais tipos de sintaxe de configuração são "comandos" e quais são os itens de configuração regulares. O comportamento de herança para locais aninhados parece estar indocumentado.
Abordagem mais limpa
Não use locais aninhados porque o comportamento da herança é indocumentado e ninguém se sentirá confiante em fazer alterações no futuro. Simplesmente repita-se, mas repita-se com inclusões. Talvez você possa criar outra inclusão do "standard-behavior.conf" e colocar coisas como try_files lá.
location /static {
include snippets/requirelogin-staff.conf;
try_files $uri $uri/index.html $uri.html =404;
alias /var/www/webroot/liv/static;
}
location / {
include snippets/requirelogin-staff.conf;
try_files $uri $uri/index.html $uri.html =404;
}