Уважаемые, подскажите пожалуйста решение следующего вопроса:
nginx - фронтенд, apache - бэкенд.
допустим, мне надо кэшировать только некоторые типы файлов (графика и статика), а остальное передавать напрямую и без кэширования.
как реализовать?
очевидный на первый взгляд вариант:
location / {
proxy_pass ....
}
location ~* ^.+\.(ico|jpg|jpeg|gif|js|png|htm|html)$ {
include cache_on.inc;
proxy_pass ....
}
не прокатывает по причине того, что proxy_pass не может быть под регулярным выражением.
Была мысль при совпадении условия (регулярного выражения) делать rewrite куда-нибудь например на /ngncahce/....
а для него уже включать кэширование, но там проблема в том, что движок успешно переписывает выражение, повторяет обработку снова, натыкается на свое же условие (рег. выр.) и снова делает реврайт, и так до бесконечности.
break ставить нельзя, т.к. тогда, само собой, не сработает proxy_pass дальше.
была задумка сделать проверку на два условия - на совпадение расширения файла (рег. выражение) и на наличие ngncache в урле (т.е. что его уже переписали), но как я поял, скриптовый движок nginx не умеет операцию AND для условий в if, то есть сразу два условия поставить нельзя.
Подскажите, как реализовать желаемое?