gunzip и балансер для memcached-а
Maxim Dounin
mdounin at mdounin.ru
Sun Feb 10 14:43:33 MSK 2008
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
More information about the nginx-ru
mailing list