Re: двойной кэш

Slava Kokorin slava.kokorin at gmail.com
Mon Sep 10 09:23:36 UTC 2012


10 сентября 2012 г., 10:49 пользователь koka miptpatriot
<miptpatriot at gmail.com> написал:
> Здравствуйте.
>
> На сервере есть небольшой ssd-диск и большой hdd-диск. Хочется чтобы nginx
> вначале глядел в кэш на ssd, если не найдёт там, то в кэш на hdd, если не
> найдёт там, то в обращался к апачу.
> Пока придумал только такой неэлементарный вариант:
>
> server {
>     listen 80;
>     location /cache {
>         proxy_cache ssd;
>         proxy_pass http://localhost:81;
>     }
> }
>
> server {
>     listen 81;
>     location /cache {
>         proxy_cache hdd;
>         proxy_pass http://apache;
>     }
> }
>
> Может можно как-то сделать это без поднятия nginx на ещё одном порту?

да, удавалось. Конфиг был при этом примерно такой (здесь только один
диск с кешем, второй можно прикрутить по аналогии):

    location / {
        root                   /cache;
        try_files              $uri @origin;
        open_file_cache_errors off;
    }

    location @origin {
        proxy_pass           http://origin_IP;
        proxy_set_header     Host            $host;
        proxy_set_header     X-Real-IP       $remote_addr;

        proxy_store          on;
        proxy_store_access   user:rw  group:rw  all:r;

        proxy_temp_path      /cache/temp;  ## On same fs where root
for fast mv
        root                 /cache;
    }


> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



-- 
Regards,
Slava


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