Re: Вопросы по возможностям прокси
Maxim Dounin
mdounin на mdounin.ru
Пт Июл 9 16:35:20 MSD 2010
Hello!
On Thu, Jul 08, 2010 at 09:40:14PM -0400, Alexandr Sergeyev wrote:
> Про SSL я писал недавно, про кеш сессий в memcached похоже
> планов нет. Спрошу тогда про прокси...
Вопрос с ssl-сессиями в memcached очень простой: зачем? Есть
мнение, что ходить в memcached за сессиями - будет дороже, чем
устанавливать их заново. Если кто-то считает иначе - пусть
приводит хоть какие-то выкладки и результаты экспериментов под
реальной нагрузкой.
А потом мы ему расскажем что в nginx'е держать keepalive ничего не
стоит, что снижает ценность кеша ssl-сессий в разы по сравнению с
Apache... ;)
> Очень интересно есть ли планы поддерживать RFC5861? В частности
>
> Cache-control: stale-if-error=timeout и
> Cache-control: stale-while-revalidate=timeout
>
> Я понимаю что первое реализуется через proxy_cache_use_stale, а
> вот второе было бы здорово иметь...
А второе - это proxy_cache_use_stale updating;.
> Стоит заметить что для вашей последней дискуссии про bypass
> возможно подойдёт просто использование Cache-control:
> only-if-cached или других из RFC2616, я не очень понял что к
> чему с этим bypass.
Всё это "с этим bypass" - прямое следствие того, что
"Cache-Control: no-cache" делает две принципиально разные вещи в
разных направлениях. А именно - не берёт из кеша, если этот
заголовок получен в запросе, и не кладёт в кеш если этот заголовок
получен в ответе.
"Cache-Control: only-if-cached" здесь ну совсем никоим боком.
[...]
> Ещё вопрос как прокси работает когда сразу сотня клиентов
> запрашивают один и тот же ресурс доступный на бэкэнде... Есть ли
> какой способ аналогичный collapsed_forwarding в squid сказать
> "всем ждать пока первый не получит ответ"?
А это называется "busy lock'и", было ещё в mod_accel'е, в nginx'е
пока не сделано и не совсем понятно когда будет сделано. Но
когда-нибудь вероятно всё-таки будет. У большинства не болит, ибо
есть тот самый proxy_cache_use_stale updating;.
> Если говорить о вкусностях подсмотреных в squid хочется
> упомянуть ещё и "quick_abort", который говорит акселератору, что
> при уходе клиента от фронтэнда кеш должен подождать если контент
> уже начал приниматься от бэкэнда.
В nginx'е кеш автоматически включает логику аналогичную
proxy_ignore_client_abort.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru