Спасибо за наводку на proxy_store. Задача такая: бэкенд обрабатывает урлы, которые нужно кешировать:
"/svg-to-png/small/:id.png"
"/svg-to-png/images/:id.png"
Вот такой получился nginx.conf:
server {
server_name conv2.site.com ;
client_max_body_size 32m;
location /images/ {
root /var/www/d-conv;
try_files $uri /svg-to-png$uri;
}
location /small/ {
root /var/www/d-conv;
try_files $uri /svg-to-png$uri;
}
location /svg-to-png/ {
proxy_pass http://127.0.0.1:3021 ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /var/www/d-conv/temp;
alias /var/www/d-conv/;
}
# для всех остальных запросов
location / {
proxy_pass http://127.0.0.1:3021 ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Получается, по запросу get /images/id.png картинка либо берется из кеша либо генерится, а по запросу get /svg-to-png/images/id.png дергается бэкенд и картинка сохраняется в кеш. Все отлично.
Нет ли тут чего-нибудь неправильного, что можно улучшить? Спасибо.