Я пытаюсь настроить try_files, но сталкиваюсь с проблемой: похоже, резервный файл «empty.png» не подбирается, хотя он находится по адресу /path/to/old_cache_data/empty.png
. Файлы реально существующие (т.е. без фолбека) находятся без проблем. Также достаточно интересно, что я получаю не nginx 404, а страницу 404 из приложения, которое обрабатывается proxy_pass ниже.
Материал, который я пробовал до сих пор:
- Удаление ведущей косой черты, что приводит к этой любопытной ошибке:
open() "/usr//htmlempty.png" не удалось (2: нет такого файла или каталога)
, Мне это кажется странным, так как /usr/html нигде не указан как запасной путь.
- Указание абсолютного пути (т.
try_files $uri /path/to/old_cache_data/empty.png;
)
Соответствующие правила:
# устаревший статический кеш
расположение /кэш/ {
корень /путь/к/old_cache_data;
try_files $uri /пусто.png;
}
# пройти через
место расположения / {
[куча прокси-настроек]
proxy_pass [целевой URL];
}
Итак, не уверен, где именно я «держу это неправильно». Это выглядит как try_files
не поднимает на корень
в локации, но каким-то образом делает странный запасной вариант.
РЕДАКТИРОВАТЬ: я обнаружил, что поместив пустой.png в подпапку «кэш» и изменив try_files на try_files $uri /cache/empty.png;
на самом деле работает. Я не понимаю, почему это так.