Dalam contoh yang Anda kutip dalam pertanyaan Anda:
location @default {
# ...
}
location /somewhere {
try_files $uri @default;
}
Jika permintaan masuk diterima di http: // domain Anda / di suatu tempat , maka lokasi cocok / di suatu tempat dan ia mencoba di dua tempat secara berurutan untuk menemukan respons, seperti yang ditentukan oleh arahan try_files, merespons dengan percobaan pertama yang berhasil.
- pertama-tama ia menguji apakah ada file di lokasi / di suatu tempat, dan jika file itu ada, dikembalikan dalam respons.
- jika gagal, ia mencoba opsi fallback try_files, @default, yang disebut dengan nama_lokasi . Respons untuk names_lokasi ini ditentukan oleh
location @default
arahan. Sebuah named_location tidak akan pernah cocok permintaan yang masuk, dan digunakan oleh referensi untuk menentukan respon dalam arahan lokasi lain.
Dengan cara ini, pernyataan if dapat dihindari (jika file ada, kemudian gunakan, jika tidak, sebutkan sebagai spec'd di directive locationdefault). Jadi itu dapat digunakan sebagai singkatan untuk kondisi jika. Pernyataan "If" jelas "disukai" oleh para penulis nginx ( jika jahat ) karena mereka memiliki beberapa keterbatasan dan mungkin tidak memberikan hasil yang diharapkan.