Re: Как сделать бессрочный кеш большого объема?

tolyan nginx-forum на forum.nginx.org
Вс Мар 10 08:41:38 UTC 2019


Спасибо за наводку на 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 дергается бэкенд и
картинка сохраняется в кеш. Все отлично. 
Нет ли тут чего-нибудь неправильного, что можно улучшить? Спасибо.

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



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