Re: Некорректный ответ при использовании fastcgi cache background update on
Maxim Dounin
mdounin на mdounin.ru
Вт Апр 17 16:30:14 UTC 2018
Hello!
On Tue, Apr 17, 2018 at 12:17:29PM -0400, gz wrote:
> > Это не подзапрос баннера. Это подзапрос
> > fastcgi_cache_background_update. Но в нём используются те же
> > переменные, что уже перезаписаны подзапросом баннера, и в
> > результате на бэкенд уходит неправильное значение переменной
> > PATH_TRANSLATED. И бэкенд, в свою очередь, отвечает на него в
> > соответствии с этим неправильным значением.
>
> Вот теперь, кажется, понимаю.
> Фоновый подзапрос обновления всей страницы получает переопределённые
> переменные окружения и вместо генерации страницы генерирует пустой баннер,
> который сохраняется в кэш.
>
> > Наиболее простое решение - использовать отдельный location для
> > баннеров с отдельными же переменными.
>
> Так и сделано
> (https://forum.nginx.org/read.php?21,279356,279363#msg-279363):
> location /banner/ {
> internal;
>
> fastcgi_cache banner;
> fastcgi_cache_valid 200 24h;
> fastcgi_cache_key '$uri$is_args$args';
>
> set $handler banner.html;
> set $querystring $args;
Обращаю внимание - выше написано _с_отдельными_переменными_. Это
важно.
Ну или вообще выкинуть переменные из конструкции, насколько я
понимаю - они тут не нужны, достаточно соответствующие
fastcgi_param задать явно.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru