Следуя предыдущий вопрос по этой теме, Я пытаюсь настроить кеширующий обратный прокси. Это будет сидеть перед множеством серверов. Следовательно, я хочу, чтобы как можно большая часть конфигурации находилась в общих сниппетах. Однако Сандор Мартин указал, что proxy_pass не будет унаследован.
Так что я не могу этого сделать ....
server {
location / {
...
include snippets/proxyconfig.conf ;
proxy_pass http://origin.example.com ;
include snippets/cachestatic.conf ;
}
}
Где cachestatic - это блок местоположения location ~* \.(gif|png|js|css)$ {...}
К сожалению, я не могу просто использовать заголовки кеширования, возвращаемые исходным сервером, в качестве основы для кеширования. Есть несколько очень больших файлов содержимого, которые я не хочу кэшировать на прокси.
Итак, конфигурация кеширования должна находиться в том же блоке Location, что и директива proxy_pass. Но в то время как первое является глобальным, второе зависит от конкретного сайта.
Могу я решить это с помощью размещение регулярного выражения Location для кэшируемого содержимого в переменной, объявленной в блоке сервера (или выше)?
Тогда это будет означать, что файл conf для моего сайта будет выглядеть так:
server {
location / {
...
include snippets/proxyconfig.conf ;
proxy_pass http://origin.example.com ;
location ~* $cacheable_type {
include snippets/inline_caching.conf ;
proxy_pass http://origin.example.com ;
}
}
}