Re: proxy http version 2; без SSL, для мультиплексирование запросов к бекенду
S.A.N
nginx-forum на forum.nginx.org
Пн Май 30 17:19:03 UTC 2016
> Если я правильно понял этот набор слов, предлагается вместо кэша
> nginx
> использовать кэш memcached'а, почему эта связка должна быть
> эффективнее
> чем один кэш nginx'a?
Нет, будет использоваться только кеш Nginx, но бекенды получат возможность
получать по ключу, тело (body) кеша Nginx, по протоколу Memcached, если в
Nginx, нет закешированого ответа или кеш требует ревалидации, тогда Nginx
переводит этот GET запрос из протокола Memcached в GET запрос протокола
HTTP, и отправляет его на бекенд, для получения нового ответа или статуса
304.
По сути Nginx сервер будет эмулировать работу Memcached сервера, тогда
бекенды будут работать с Nginx как с Memcached.
Протокол HTTP не очень подходит для быстрого общения бекендов между собой
внутри датацентра, HTTP слишком многословен, часто тело JSON ответа короче
HTTP заголовков.
Когда бекенд делает запрос к другому бекенду через Nginx, его интересует код
ответа, длина ответа и само тело ответа, все остальное это мусор который
нужен только браузеру, по этому протокол Memcached подходит лучше, плюс этот
протокол мультиплецируется :)
Такая связка во многом лучше чем работать с реальным сервером Memcached.
1. Nginx асинхроный и многопоточный, Memcached однопоточный и запросы
обрабатывает последовательно.
2. Nginx имеет опции кеша cache_lock, use_stale, min_uses.
3. Nginx умеет ревалидировать кеш
4. Нет холодного старта и размер кеша не ограничен оперативной памятью.
5. Нет лишнего звена и зависимости от Memcached сервера
Ну как вам?
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266693,267235#msg-267235
Подробная информация о списке рассылки nginx-ru