Привет всем.
На сервере есть 5 папок
/var/www/static/
/var/www/static1/
/var/www/static2/
/var/www/static3/
/var/www/staticHandle
4 первых папки содержать фотки раскиданные по директориям, а staticHandle занимается их обработкой, ресайзом, подгонкой, выводом в браузер и т.д.
К примеру при обращении staticHandle.ru/photos/image.jpg?width=300x400&folder=static2
staticHandle принимает ширину и высоту до которой нужно уменьшить фото, а так же folder содержит папку в которой находится это фото. Т.е. взять фото из папки /var/www/static2/photos/image.jpg и уменьшить его до width и height
Тут все работает отлично.
Вот конфиг location
location ~ ^/photos/(?<imgfile>.+\.(jpg|JPG|jpeg|JPEG|png|PNG|webp|WEBP))$ {
root $root;
add_header Cache-Control "public, max-age=315360000";
try_files $imgdir/$imgfile @image;
}
location @image {
expires 1y;
rewrite ^/photos/(.*)$ /image?$args&image=$1? last;
}
С генерацией уменьшенных фоток все отлично работает, но проблема заключается в том что если не передан GET запрос, то Nginx все равно отправляет его в обработчик, а мне нужно чтобы в таких случаях искались оригиналы файлов во всех 4 папках последовательно
/var/www/static/
/var/www/static1/
/var/www/static2/
/var/www/static3/
И если не найдены то уже отправить данные в @image, где я смогу отловить то что файла нет и быть может поискать его в облаке.
Другими словами, мне нужно оставить все как есть при обращении на URL staticHandle.ru/photos/image.jpg?width=300x400&folder=static2
А в случае если идет запрос на staticHandle.ru/photos/image.jpg
Попробовать найти файл в папках
/var/www/static/photos/image.jpg
/var/www/static1/photos/image.jpg
/var/www/static2/photos/image.jpg
/var/www/static3/photos/image.jpg
и отдать его как статику Nginx'ом
На сервере самим обработчиком найти и отдать файл проблем нет, но хочется чтобы все это добро Nginx отдавал.
Ранее когда все 4 папки были закреплены за 4мя поддоменами с этим проблем не было, а теперь появился еще один поддомен, который будет управлять всем добром и он не может найти файл так как ищет его сугубо в папке /var/www/staticHandle/photos/image.jpg, а сам файл может находится в других папках.