No exemplo que você cita na sua pergunta:
location @default {
# ...
}
location /somewhere {
try_files $uri @default;
}
Se a solicitação de entrada for recebida em http: // seu-domínio / em algum lugar , o local corresponderá a / em algum lugar e ele tentará em dois locais sequencialmente encontrar uma resposta, conforme especificado pela diretiva try_files, respondendo com a primeira tentativa bem-sucedida.
- primeiro ele testa se existe um arquivo no local / em algum lugar e, se o arquivo existe, ele é retornado na resposta.
- se isso falhar, ele tenta a opção de fallback try_files, @default, que é chamada de local_do_ nomeado . A resposta para esse local_ nomeado é especificada pela
location @default
diretiva. Um local_ nomeado nunca corresponderá a uma solicitação recebida e é usado por referência para especificar a resposta em outras diretivas de local.
Dessa forma, uma instrução if pode ser evitada (se o arquivo existir, use-o, caso contrário, responda conforme especificado na diretiva location @default). Portanto, ele pode ser usado como um atalho para uma condição if. As declarações "If" são definitivamente "desaprovadas" pelos autores do nginx ( se for mau ), pois possuem algumas limitações e podem não fornecer o resultado esperado.