V tomto tutoriáli si rýchlo povieme, ako používať direktívu try_files, a naučíme sa, kedy a ako ju používať:
Čo je smernica Try_files a ako to funguje?
Direktívu Nginx try_files zvyčajne používame na rekurzívnu kontrolu, či súbory existujú v konkrétnom poradí, a na obsluhu súboru, ktorý sa nachádza ako prvý.
Direktíva try_file je v blokoch servera a umiestnenia a určuje súbory a adresáre, v ktorých by mal Nginx skontrolovať súbory, ak je prijatá požiadavka na zadané umiestnenie. Typická syntax smernice try_files je nasledovná:
miesto /try_files $ uri $ uri / / default / index.html;
Umiestnenie / blok určuje, že sa jedná o zhodu pre všetky umiestnenia, pokiaľ nie je výslovne uvedené umiestnenie /
V druhom bloku try_files znamená, že ak Nginx dostane požiadavku na URI, ktorá sa zhoduje s blokom v umiestnení, najskôr vyskúšajte $ uri a ak je súbor k dispozícii, poskytnite ho.
Napríklad ak je to požiadavka ako napríklad https: // linuxhint.sk / bloky / io.sh, Nginx najskôr vyhľadá súbor v adresári / blocks a poskytne ho, ak je k dispozícii.
Ďalšia časť (/ default / index.html) určuje alternatívu, ak súbor nie je v prvom parametri. Napríklad, ak súbor nie je v adresári / block, Nginx vyhľadá adresár / default a poskytne súbor, ak existuje.
Nginx predvolene zakazuje výpis adresárov a dostanete 403 Forbidden, pokiaľ nemáte zapnutý automatický index.
Ak program Nginx nenájde súbor na určených miestach, zobrazí používateľovi chybu 404 nenájdená.
POZNÁMKA: Direktíva Nginx try_files rekurzívne vyhľadáva súbory a adresáre zadané zľava doprava, kým nenájde. Zadanie tejto smernice v umiestnení / môže spôsobiť problémy s výkonom, najmä na stránkach s vysokou premávkou. Preto by ste mali výslovne určiť blok umiestnenia pre súbory try_files.
Záver
Táto rýchla a jednoduchá príručka vám poskytne prehľad o tom, ako funguje Nginx try_block. Odporúčame ponoriť sa hlboko do dokumentácie Nginx, aby ste pochopili rôzne bloky a kedy ich použiť.
- https: // nginx.org / en / docs / http / ngx_http_core_module.html # try_files
- https: // dokumenty.nginx.com / nginx / admin-guide / web-server / serve-static-content /