2015-09-07 4 views
1

У меня есть приложение PHP, работающее на последнем Nginx. Я хотел бы кэшировать каждую полную страницу для определенного URL-адреса с помощью memcached, а также иметь возможность очищать/отменять конкретную кэшированную страницу с помощью нескольких команд PHP.Полный кеш страниц Nginx с использованием Memcached/Elasticache и очистки с помощью PHP

Мое исследование предполагает использование этих 2 модулей:
http://wiki.nginx.org/HttpSRCacheModule
http://wiki.nginx.org/HttpMemcModule

Это лучший/простой способ? Любые другие предложения?

+0

Вы решили проблему? – Anatoly

ответ

2

Вы можете использовать built-in Memcache module Конфигурация прямо вперед:

server { 
    location/{ 
     set   $memcached_key "$uri?$args"; 
     memcached_pass host:11211; 
     error_page  404 502 504 = @fallback; 
    } 

    location @fallback { 
     proxy_pass  http://backend; 
    } 
} 

Кэш недействительности не прямо вперед, и, если это возможно использование коротких TTL, что вынуждает кэш быть ненавязчивым и недействительным по времени. В противном случае ищите методы Memcache here.

+0

Спасибо. Когда страница будет обслуживаться, которая не находится в кеше, будет ли она автоматически вставлена ​​в кеш или мне придется сделать это вручную? – Littlebob

+0

@Littlebob вручную через бэкэнд, стандартный модуль Nginx Memcache доступен только для чтения. – Anatoly

+0

Вот аналогичный вопрос с частичным аналогичным ответом http://serverfault.com/questions/342548/configuring-nginx-to-work-with-memcache-for-reverse-proxy-cache – Littlebob