Как настроить проверку наличия статики с помощью Nginx перед передачей запроса обработчику на Node.js?
У меня на сайте тысячи картинок, и каждую из них приходится изменять размер на лету. Я написал обработчик на Node.js, который проверяет, существует ли уменьшенная копия картинки. Если такой копии нет, он создает ее.
Сейчас я хочу настроить проверку наличия статики с помощью Nginx, чтобы при обращении к картинкам Node.js активировался только в случае отсутствия копии. Я пытаюсь это реализовать, но из-за ограниченных знаний пока не получается.
Процесс выглядит следующим образом:
Оригиналы картинок хранятся в папке /var/www/SITE/original/01/pic.webp
Копии сохраняются в папке /var/www/SITE/tmp/100/01/pic.webp
Запрос на создание копии выглядит так: SITE/original/01/pic.webp?fit=resize&w=100&display=true
Этот запрос обрабатывается на сервере с помощью обработчика /image/
Я пытаюсь достичь следующего:
```
location ~* /o/(.*)\.(webp|jpg)\?fit=resize&w=100&display=true {
# Проверить наличие файла /var/www/SITE/tmp/100/01/pic.webp
# В случае его отсутствия, выполнить location @image
try_files $uri @image;
}
```
Я пробовал хотя бы отобразить картинку, используя следующую инструкцию:
```
rewrite ^/original/(.*)$ /tmp/100/$1? last;
```
но ничего не получилось. Из логов вижу ошибку следующего типа:
2023/10/14 11:39:45 [error] 1120289#1120289: *9825858 open() "/etc/nginx/html/original/01/pic.webp" failed (2: No such file or directory), client: IP, server: SITE, request: "GET /original/01/pic.webp?fit=resize&w=100&display=true HTTP/2.0", host: "SITE"