try files и 2 rewrite

ingtar nginx-forum на forum.nginx.org
Чт Июн 16 09:14:47 UTC 2016


Доброго дня!
Возник вопрос, возможно ли воплотить такую схему работы:
Есть локейшен, с которого отдаются файлы после rewrite.
Файлы могут быть в двух разных папках на сервере, нужно отдать со второй
папки, если в первой 404.
Вроде эту магию может сделать try_files.
Нашлась статья про каскадные проверки, но выглядит чуть монструозно
http://linuxplayer.org/2013/06/nginx-try-files-on-multiple-named-location-or-server

Возможно ли делать например такую штуку с одним правилом rewrite в основном
локейшене и если 404 - то идем в other_location:

location /images/ {
        root /var/local/images/
        rewrite '^/avatar/256x256/([0-9]*)(\d{2})(\d{2})(\d{2})\.(jpg|png)'
/avatars/$4/$3/$2/$1$2$3$4_256x256.$5 break;
        try_files $uri @other_location;
}

location @other_location {
        root /var/local/images/
        rewrite '^/avatar/256x256/([0-9]*)(\d{2})(\d{2})(\d{2})\.(jpg|png)'
/avatars/new_avatar/$4/$3/$2/$1$2$3$4_256x256.$5 break;
}

Или в other_location следует делать rewrite уже измененного uri в первом
локейшене?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,267623,267623#msg-267623



Подробная информация о списке рассылки nginx-ru