Šajā apmācībā mēs ātri apspriedīsim, kā izmantot try_files direktīvu un uzzināsim, kad un kā to izmantot:
Kas ir try_files direktīva un kā tā darbojas?
Mēs parasti izmantojam Nginx try_files direktīvu, lai rekursīvi pārbaudītu, vai faili pastāv noteiktā secībā, un apkalpo failu, kas atrodas pirmais.
Direktīva try_file atrodas servera un atrašanās vietas blokos un norāda failus un direktorijus, kuros Nginx jāpārbauda faili, ja tiek saņemts pieprasījums uz norādīto vietu. Tipiska try_files direktīvas sintakse ir šāda:
atrašanās vieta /try_files $ uri $ uri / / default / index.html;
Atrašanās vieta / bloks norāda, ka šī ir atbilstība visām atrašanās vietām, ja vien nav skaidri norādīta atrašanās vieta /
Otrajā blokā try_files nozīmē, ka, ja Nginx saņem URI pieprasījumu, kas atbilst atrašanās vietas blokam, vispirms izmēģiniet $ uri un, ja fails atrodas, pasniedziet failu.
Piemēram, ja pieprasījums, piemēram, https: // linuxhint.com / blocks / io.sh ir saņemts, Nginx vispirms meklēs failu direktorijā / blocks un apkalpos failu, ja tas būs pieejams.
Nākamā daļa (/ default / index.html) norāda rezerves opciju, ja fails nav pirmajā param. Piemēram, ja fails neatrodas direktorijā / block, Nginx meklēs direktoriju / default un apkalpos failu, ja tāds pastāv.
Pēc noklusējuma Nginx aizliedz direktoriju sarakstu, un jūs saņemsit 403 Aizliegts, ja vien jums nav iestatīts automātiskais indekss.
Ja Nginx neizdodas atrast failu norādītajās vietās, lietotājam tiek parādīta kļūda 404, kas nav atrasta.
PIEZĪME: Nginx try_files direktīva rekursīvi meklē failus un direktorijus, kas norādīti no kreisās uz labo, līdz atrod. Šīs direktīvas norādīšana atrašanās vietā / var izraisīt veiktspējas problēmas, īpaši vietnēs ar lielu satiksmi. Tāpēc jums skaidri jānorāda try_files atrašanās vietas bloks.
Secinājums
Šī ātrā un vienkāršā rokasgrāmata sniedz jums pārskatu par to, kā darbojas Nginx try_block. Mēs iesakām ienirt dziļi Nginx dokumentācijā, lai izprastu dažādus blokus un kad tos izmantot.
- https: // nginx.org / lv / docs / http / ngx_http_core_module.html # try_files
- https: // docs.ninks.com / nginx / admin-guide / web-server / serving-static-content /