Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Мысли по поводу кэширов ания.
Hello!
On Sun, Nov 28, 2010 at 11:18:17AM +0300, Михаил Монашёв wrote:
> Здравствуйте.
>
> Есть конфиг:
>
> location / {
> ...
> proxy_pass http://backend1;
> proxy_cache optcache1;
>
> error_page 404 500 502 503 504 =
> @fallback;
> }
>
> location @fallback {
> ...
> proxy_pass http://backend2;
> proxy_cache optcache1;
> }
>
> Второй proxy_cache совершет лишнюю работу. От неё можно избавиться,
> если разделить директиву proxy_cache на две: первая читает из кэша,
> вторая сохраняет в кэш. Или же не проверять дважды один и тот же
> ключик кэша внутри одного запроса.
1) Вообще говоря, для подобных конфигураций существует
proxy_next_upstream. Понятно, что во многих случаях он не
применим (в частности - из за отсутствия ограничения на количество
попыток), но проблемы с двойной проверкой в кеше у него нет.
2) Стоимость второй проверки в кеше можно ощутимо снизить с
помощью open_file_cache.
3) Вообще говоря, пока мы ходили на первый бекенд, в кеше ответ
мог и появиться. Так что совсем не факт, что вторая проверка -
лишняя.
4) Второму proxy_cache можно сказать proxy_cache_bypass. Это и
будет то самое "разделение на две". Но сейчас это не работает
из-за ошибки в реализации.
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|