Încerc să configurez try_files, dar întâmpin o problemă: se pare că fișierul alternativ „empty.png” nu este preluat, chiar dacă se află la /path/to/old_cache_data/empty.png
. Fișierele care există efectiv (adică fără rezervă) sunt găsite fără probleme. De asemenea, destul de interesant, nu primesc un nginx 404, ci pagina 404 din aplicația care este gestionată de proxy_pass de mai jos.
Lucruri pe care le-am încercat până acum:
- Eliminarea barei oblice principale, care duce la această eroare curioasă:
open() „/usr//htmlempty.png” a eșuat (2: Nu există un astfel de fișier sau director)
, Mi se pare ciudat deoarece /usr/html nu este specificat nicăieri ca nici un fel de cale de rezervă.
- Specificarea unei căi absolute (de ex.
try_files $uri /path/to/old_cache_data/empty.png;
)
Reguli relevante:
# cache static moștenit
locație /cache/ {
root /path/to/old_cache_data;
try_files $uri /empty.png;
}
# A trece prin
Locație / {
[o mulțime de setări proxy]
proxy_pass [url-ul țintă];
}
Deci, nu sunt sigur unde exact "țin greșit". Se pare ca try_files
nu ridică pe rădăcină
în locație, dar face cumva o alternativă ciudată.
EDITAȚI | ×: am aflat că plasând empty.png în subdosarul „cache” și schimbând try_files în try_files $uri /cache/empty.png;
chiar functioneaza. Nu înțeleg totuși de ce este așa.