V tomto kurzu budeme rychle diskutovat o tom, jak používat direktivu try_files, a naučíme se, kdy a jak ji používat:
Co je směrnice try_files a jak to funguje?
Obvykle používáme směrnici Nginx try_files k rekurzivní kontrole, zda soubory existují v určitém pořadí, a slouží k souboru umístěnému jako první.
Direktiva try_file je v blocích serveru a umístění a určuje soubory a adresáře, ve kterých by měl Nginx zkontrolovat soubory, pokud je přijat požadavek na zadané umístění. Typická syntaxe direktivy try_files je následující:
místo /try_files $ uri $ uri / / default / index.html;
Umístění / blok určuje, že se jedná o shodu pro všechna umístění, pokud není výslovně uvedeno umístění /
Uvnitř druhého bloku try_files znamená, že pokud Nginx obdrží požadavek na URI, který odpovídá bloku v umístění, zkuste nejprve $ uri a pokud je soubor přítomen, poskytněte soubor.
Například pokud je to požadavek jako https: // linuxhint.com / bloky / io.Pokud je sh přijato, Nginx nejprve vyhledá soubor v adresáři / blocks a soubor podá, pokud je k dispozici.
Další část (/ default / index.html) určuje záložní možnost, pokud soubor není v prvním parametru. Například pokud soubor není v adresáři / block, Nginx vyhledá adresář / default a soubor poskytne, pokud existuje.
Ve výchozím nastavení Nginx zakazuje výpis adresářů a dostanete 403 Forbidden, pokud nemáte zapnutý automatický index.
Pokud Nginx nenalezne soubor na zadaných místech, zobrazí uživateli chybu 404 not found.
POZNÁMKA: Direktiva Nginx try_files rekurzivně vyhledává soubory a adresáře zadané zleva doprava, dokud je nenajde. Zadání této směrnice v umístění / může způsobit problémy s výkonem, zejména na webech s velkým provozem. Proto byste měli explicitně určit blok umístění pro try_files.
Závěr
Tento rychlý a jednoduchý průvodce vám poskytne přehled o tom, jak Nginx try_block funguje. Doporučujeme ponořit se hluboko do dokumentace Nginx, abyste pochopili různé bloky a kdy je použít.
- 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 /