The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Кэширование страниц в memcached и nginx (nginx web memcached cache speed)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: nginx, web, memcached, cache, speed,  (найти похожие документы)
From: Boguk Maxim <ICQ: 99-312-438> Newsgroups: nginx-ru Date: Mon, 26 Jan 2008 18:21:07 +0000 (UTC) Subject: Кэширование страниц в memcached и nginx Оригинал: http://www.lexa.ru/nginx-ru/msg07681.html Логика работы такая: nginx умеет ходить в memcached за страницей если такой страницы в memcached нет то получается 404 код ошибки который можно перехватить и перенаправить на backend Который проставит нужные данные в кеш и отдаст ответ nginx'u. (производительность связки nginx+memcached куда выше чем можно добится у nginx+(apache/mod_perl для X-Accel-Redirect)+ memcached) Такая связка реально работает и показывает очень приличную производительность (сколько максимум так можно отдавать не знаю... думаю упрется в ethernet). PS: что не возможно сделать пока это использование распределенного на несколько серверов memcached изза того nginx пока не умеет считать какой либо хеш от URL чтобы на его основе принимать решение в каком из memcached сервер искать данные. (хотя конечно можно по locations разбросать руками на несколько 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/; }

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
 
  • 1, b2d, 12:59, 16/02/2009 [ответить] [смотреть все]
  • +/
    Интересно как можно посмотреть на производительность такой системы...
    stub_status ничего не говорит по этому поводу
     
  • 2, Злые тапки, 17:14, 21/09/2009 [ответить] [смотреть все]
  • +/
    nginx умеет хэш от uri считать.
    у меня это делается так (упрощенно):

    http {
        perl_set $md5_uri 'sub {
      use Digest::MD5 qw(md5_base64);
      my $r = shift;
      my $uri=$r->uri;
      my $args=$r->args;
      if ($args){
       $uri=$uri."?".$args;
      }
      return md5_base64($uri);
    }
    ';

        upstream memcached {
            memcached_hash;
            server 192.168.0.26:11211;
    server 192.168.0.28:11211;
        }
    }

    localtion / {
    set $memcached_key $md5_uri;
    memcached_pass memcached;
    }

    nginx должен быть скомпилен с поддержкой перла.
    должен стоять модуль перла Digest::MD5

     
  • 3, Злые тапки, 17:16, 21/09/2009 [ответить] [смотреть все]
  • +/
    забыл добавить. nginx взят отсюда http://openhack.ru/nginx-patched/
    потому как официальный nginx 0.7 неправильно определяет необходимый сервер memcached (если больше чем один, разумеется)
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



    АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Подробнее о проведении акции вы можете прочитать на странице сайта.


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList