> До можно сделать что-то вроде
> X-Accel-Redirect: /path
>
> а /path смапить на memcached уже в самом nginx
>
> только я не знаю будет ли X-Accel-Redirect (так, да, называется
> заголовок? по памяти писал) перенаправлять nginx на memcached,
> технических ограничений я не вижу, просто реализовал ли это Игорь?
На мой взгляд куда более правильно не использовать X-Accel-Redirect
A отдавать content напрямую связкой nginx+memcached
а в случае memcached miss запрашивать контент у backend одновременно записывая
его в memcached.
(производительность связки nginx+memcached куда выше чем можно добится у
nginx+(apache/mod_perl для X-Accel-Redirect)+ memcached)
Пример рабочего конфига (сильно упрощенный) :
location =/ajax/SOME_URL.html {
#без этого content_type кривой будет
default_type text/html;
#идем в memcached
#ключ в memcached '/ajax/SOME_URL.html'
#если у запроса нужны аргументы надо не забыть их сохранить для случая
memcached miss
#через set $ArgsCopy $args;
#и потом добавить их через rewrite в location /_backend_/
memcached_pass SOME_MEMCACHED_IP:SOME_MEMCACHED_PORT;
#если в memcached не попали то через 404 error_page запрашиваем данные у
backend
#который нам их отдает и записывает итог в memcached
error_page 404 = /_backend_/ajax/SOME_URL.html;
}
#внутренний URL для обработки случаем memcached miss на этот location
location /_backend_/ {
internal;
#идем на backend
proxy_pass http://BACKEND_IP:BACKEND_PORT/;
}
====================================================================
Орфография - это как Кунг Фу.
Настоящий мастер не применяет его без необходимости.
С уважением,
Максим Богук
Отдел развития веб-проектов
ООО "Рамблер Интернет Холдинг"
astar@xxxxxxxxxxxxx ICQ: 99-312-438
(910) 405-47-18