[guru] nginx и кеширование в memcached

Статус
В этой теме нельзя размещать новые ответы.

DOLARiON

Гуру форума
Регистрация
4 Сен 2006
Сообщения
191
Реакции
65
собственно, сабж...


имеется связка Apache+Nginx

конфиг примерно такой:

Код:
server {
    listen        80;
    server_name    site.ru;
    access_log    /var/log/nginx/site.ru.access.log;

    location / {
        root   /home/site.ru/public_html;
        index  index.html index.htm;

        set $memcached_key "site.ru.$uri";
        memcached_pass localhost:11211;

        # если в memcached не найден ресурс, передаем запрос на апач
        error_page 404 502 504 = @backend;
        add_header Content-Type "text/html; charset=UTF-8";
        gzip on;
        gzip_proxied any;
        gzip_types application/octet-stream;
    }


    location @backend {
        set $proxy_uri http://site.ru:99999$request_uri;
        proxy_pass $proxy_uri;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X_Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 20;
    }

    location ~ /\.ht {
        deny  all;
    }

}

каким-то макаром можно то что мы поулчаем с @backend кешировать средствами nginx? или нет и нужно обязательно ворвардить на апач, из которого уже отправляем в кеш

причем нужны условия:
скажем, по урлам
если у нас "/" (главная страница) - 10 мин
если "/news" - 20 мин
если "/news/news1.html" - 24 часа
в любом другом случае - 1 час
ну и т.д.

PS. я понимаю что средствами пхп отправлять в мемкешед достаточно просто... вопрос только в том, что если всем этим можно управлять из nginx - было бы гораздо удобнее - не пришлось бы делать корректировки в скриптах, которые по определенным обстоятельствам не хотелось бы трогать :)
 
вообще не в тему! тоже самое у меня уже написано в примере конфига в первом посте... читай внимательнее

мне нужно именно кеширование средствами nginx
возможно ли такое вообще?

т.е. когда мы получили от апача инфу... средствами nginx нужно отправить ее в memcached c соответствующими параметрами кешироания...
 
Не сразу понял суть вопроса :ah:

Насколько мне известно, nginx умеет только читать из memcahed.
То есть если данных в кэше нет, то отправляем дальше.

Цитата из мана
Модуль ngx_http_memcached_module позволяет получать ответ из сервера memcached. Ключ задаётся в переменной $memcached_key. Ответ в memcached должен быть предварительно помещён внешним по отношению к nginx'у способом.
 
О!
значит всетаки незя - это плохо :confused:

по теме вопроса еще нарыл вот такой вот свеженький пост, что называется, от создателей хабрахабр :)

 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху