ПРОЕКТЫ 


  АРХИВ 


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: gunzip и балансер для memcached-а



Hello!

On Sun, Feb 10, 2008 at 01:12:57PM +0300, Михаил Монашёв wrote:

Здравствуйте,

Мы тут написали несколько патчиков http://openhack.ru/nginx-patched .

1.  Балансировщик  запросов к мемкашеду. Сейчас каждый запрос стучится
по  всем  мемкашедам  апстрима  пока  не  найдёт  нужного ключика. Это
конечно  быстро,  но  неэффективно,  если  мемкашедов  много. Балансер
http://openhack.ru/nginx-patched/wiki/MemcachedHash          позволяет
обращаться   сразу   к  нужному  мемкашеду.  Реализовано  2  алгоритма
вычисления   нужного  мемкашеда:  остаток  от  деления  на  количество
серверов  и  Кетама.  Последний  позволяет добавлять новые мемкашеды с
лишь  частичным перераспределением ключиков между мемкашедами. Эти два
алгоритма     также    реализованы    в    нашем    перловом    модуле
http://openhack.ru/Cache-Memcached-Fast/wiki/Ru .

2.  Поддержка  502,  503,  504  и  507  ответов  от  бэкендов        в
proxy_next_upstream.  Если  на бэкенде стоит nginx , а за ним Апач, то
падение/торможение  апача приведёт к возврату 502 или 504 ошибки и она
отдастся  юзеру, что не всегда хорошо. В proxy_next_upstream добавлены
вышеперечисленные  коды  ответов,  дабы  избегать  подобных  ситуаций.
Правда  над  быть  осторожным  с их использованием, ибо тяжёлый запрос
может  завалить  все  бэкенды,  вместо одного. Большое спасибо Максиму
Дунину за частичную реализацию.

3.   http://openhack.ru/nginx-patched/wiki/MemcachedGzip  -  расжимает
полученный  от  мемкашеда  ответ,  если  он  был  сжат и браузер хочет
получить  несжатый  контент.  Экономится  память мемкашеда. Экономится
процессор:  разсжатие  дешевле  сжатия  и  большинству браузером нужен
именно сжатый контент.

Сейчас  nginx  со всеми этими изменениями работает на рабочих серверах
моих проектов. Т.е. можно предположить, что оно стабильное.

Буду  признателен  за тестирование, пожелания и комментарии. Можно или
тут или в листе на http://list.openhack.ru/Lists/talk/ .

Если  Максим  Дунин  не  против  (ибо он автор части кода, связанной с
proxy_next_upstream),  то  хотелось бы включить все перечисленные выше

Максим Дунин не против.

разработки  в  главную  ветку. ngx_http_upstream_memcached_hash_module
реализован  в  виде  независимого  модуля,  но  потребовал  3-х мелких
патчиков     в    nginx.    memcached_gzip    -    это    доработанный
ngx_http_gzip_module.

Я думаю было бы дофига полезно представить патчи с пояснениями отдельно, а модули - отдельно.

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.