Re: fastcgi cache background update ssi подзапросов

B.R. reallfqq-nginx at yahoo.fr
Fri May 12 10:25:41 UTC 2017


https://mailman.nginx.org/mailman/listinfo/nginx-ru
---
*B. R.*

2017-05-10 19:18 GMT+02:00 Roman Arutyunyan <arut at nginx.com>:

> Добрый день,
>
> On Wed, May 10, 2017 at 12:04:39PM -0400, metalfm1 wrote:
> > Приветствую!
> >
> > Директива fastcgi_cache_background_update странно ведёт себя при ssi
> > подзапросах.
> > Есть сервис со сложной бизнес логикой, главная страница загружается 1
> сек,
> > стек nginx + php-fpm. В ходе оптимизации скорости загрузки было решено
> > вынести генерацию самого долгого куска страницы в отдельный ssi
> подзапрос и
> > кешировать его на 1 час. Кешированием управляет fastcgi сервер на php с
> > помощью заголовка Cache-Control.
> >
> > С кеширование проблем нет, nginx успешно кеширует подзапросы /ssi_dev/ и
> > складывает их на диск. Проблемы начинаются когда кеш протухает.
> >
> > Текущее поведение nginx
> > - если есть элемент в кеше, то он успешно отдается(HIT)
> > - если есть элемент в кеше, но он устарел, то клиенту отдаётся устаревшая
> > версия(STALE) и делается подзапрос на прогрев кеша(EXPIRED)
> >
> > Проблема заключается в том, что подзапрос на прогрев кеша выполняется в
> > блокирующем режиме. То есть основной запрос ждёт выполнения подзапроса.
> > Указанная выше проблема не наблюдается, если в кеш класть всю страницу,
> > поведение nginx соответствует документации. Клиенту отдаётся старая
> версия
> > контента и делается неблокирующий подзапрос на обновление.
>
> На текущий момент background update реализован так, что он блокирует
> основной
> запрос, если запущен в подзапросе.  Это как раз ваш случай.
> В таск https://trac.nginx.org/nginx/ticket/1249 я аттачил патч, который
> должен
> это вылечить.
>
> [..]
>
> --
> Roman Arutyunyan
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20170512/bd8b1194/attachment.html>


More information about the nginx mailing list