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