En el ejemplo que cita en su pregunta:
location @default {
# ...
}
location /somewhere {
try_files $uri @default;
}
Si la solicitud entrante se recibe en http: // su-dominio / en algún lugar , entonces la ubicación coincide con / en algún lugar e intenta en dos lugares secuencialmente encontrar una respuesta, como lo especifica la directiva try_files, respondiendo con el primer intento exitoso.
- primero prueba si hay un archivo en la ubicación / en algún lugar, y si el archivo existe, se devuelve en la respuesta.
- si esto falla, prueba la opción de respaldo try_files, @default, que se llama ubicación_controlada . La directiva especifica la respuesta para esta ubicación nombrada
location @default
. Una ubicación nombrada nunca coincidirá con una solicitud entrante, y se usa como referencia para especificar la respuesta en otras directivas de ubicación.
De esta manera, se puede evitar una instrucción if (si el archivo existe, luego úselo, de lo contrario responda como se especifica en la directiva location @default). Por lo tanto, se puede usar como una abreviatura para una condición if. Los autores de nginx definitivamente (" si es malo" ) consideran que las declaraciones "If" están "mal vistas", ya que tienen algunas limitaciones y pueden no dar el resultado esperado.