ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: feature request: header X-Memcache


  • To: <nginx-ru@xxxxxxxxx>
  • Subject: RE: feature request: header X-Memcache
  • From: "Boguk Maxim" <astar@xxxxxxxxxxxxx>
  • Date: Tue, 15 Aug 2006 17:11:46 +0400
  • Content-class: urn:content-classes:message
  • Thread-index: AcbAactnoCPNqHIzSO2ckKU7plX+UwAANNnA
  • Thread-topic: feature request: header X-Memcache

> До можно сделать что-то вроде
> 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
 



 




Copyright © Lexa Software, 1996-2009.