http {
include mime.tipuri;
aplicație de tip_default/octet-stream;
Server {
root/site-uri web;
asculta 80;
nume_server gazdă locală;
# nu funcționează
try_files /logo.png /logo.jpg /error;
# lucrări
rescrie ^/e /eroare;
# lucrări
# returnează 200 „$request_uri Gestionat de blocul serverului”;
Locație / {
default_type text/plain;
returnează 200 „Prefixul rădăcină potrivit”;
}
locație / eroare {
default_type text/plain;
returnează 404 „Sigla nu a fost găsită”;
}
}
Vreau să știu care este cauza acestei evaluări, nu am găsit nicio explicație de încredere nici pe documentație, nici pe forumuri.
Apropo, am experimentat următorul scenariu:
- A fost eliminată locația/{} bloc și a funcționat conform intenției. Știu că
atunci când cererea este făcută către server, aceasta este evaluată mai întâi de către server
bloc și apoi blocuri de locație potrivite. Dar se pare
try_files
directiva este ignorată (DE CE?!!). Dacă am dreptate ultimul argument al
try_files
directiva rescrie URI-ul, astfel încât acesta ar trebui să se comporte ca o rescrie
directivă. Atât directivele de rescriere, cât și cele de returnare au funcționat conform intenției,
au evaluat de fiecare dată, indiferent dacă există locații
blocați sau nu potrivirile.
Am cercetat mult pentru a găsi informații de încredere care să explice această situație, dar nu am găsit. Așadar, întreb aici răspunsul sau sursa despre interiorul Nginx pe cineva care știe.