Tässä opetusohjelmassa keskustelemme nopeasti try_files-direktiivin käytöstä ja opimme, milloin ja miten sitä käytetään:
Mikä on try_files-direktiivi ja miten se toimii?
Käytämme yleensä Nginx try_files -direktiiviä tarkistaaksemme rekursiivisesti, ovatko tiedostot olemassa tietyssä järjestyksessä, ja palvelemme ensin löydettyä tiedostoa.
Try_file-direktiivi on palvelimessa ja sijaintilohkoissa ja määrittelee tiedostot ja hakemistot, joissa Nginxin tulisi tarkistaa tiedostot, jos pyyntö määritettyyn sijaintiin vastaanotetaan. Tyypillinen try_files-direktiivin syntaksi on seuraava:
sijainti /try_files $ uri $ uri / / default / index.html;
Sijainti / lohko määrittää, että tämä on ottelu kaikille sijainneille, ellei nimenomaisesti määritetä sijaintia /
Toisen lohkon sisällä try_files tarkoittaa, että jos Nginx vastaanottaa pyynnön URI: lle, joka vastaa lohkoa sijainnissa, kokeile ensin $ uri ja jos tiedosto on läsnä, tarjoa tiedosto.
Esimerkiksi, jos pyyntö, kuten https: // linuxhint.fi / lohkot / io.sh on vastaanotettu, Nginx etsii ensin tiedostoa / lohkot -hakemistosta ja palvelee tiedostoa, jos se on käytettävissä.
Seuraava osa (/ default / index.html) määrittää varavaihtoehdon, jos tiedosto ei ole ensimmäisessä parametrissa. Esimerkiksi, jos tiedosto ei ole hakemistossa / block, Nginx etsii / oletushakemistoa ja palvelee tiedostoa, jos se on olemassa.
Oletusarvon mukaan Nginx kieltää hakemistoluettelon, ja saat 403 Kielletty, ellet ole asettanut automaattista hakemistoa päälle.
Jos Nginx ei löydä tiedostoa määritetyistä sijainneista, se näyttää käyttäjälle 404 ei löydy -virheen.
MERKINTÄ: Nginx try_files -direktiivi etsii rekursiivisesti vasemmalta oikealle määritettyjä tiedostoja ja hakemistoja, kunnes se löytää ne. Tämän direktiivin määritteleminen sijaintiin / voi aiheuttaa suorituskykyongelmia, erityisesti alueilla, joilla on paljon liikennettä. Siksi sinun on määritettävä nimenomaisesti try_files-sijaintilohko.
Johtopäätös
Tämä nopea ja yksinkertainen opas on antanut sinulle yleiskuvan siitä, miten Nginx try_block toimii. Suosittelemme sukeltamaan syvälle Nginx-dokumentaatioon ymmärtämään erilaisia lohkoja ja milloin niitä käytetään.
- https: // nginx.org / fi / docs / http / ngx_http_core_module.html # try_files
- https: // docs.nginx.fi / nginx / admin-guide / web-server / serving-static-content /