On Mon, 18 Feb 2002, Sergey Gershtein wrote:
> Речь идет о директиве AccelInvalidate. На frontend-е, в частности, написано:
>
> AccelNoCache on
> AccelIgnoreNoCache off
>
> # ....
>
> <Location ~ "\.(js|css|txt)$"> ╕
> AccelIgnoreNoCache Off ╕
> AccelNoCache Off ╕
> </Location>
>
> AccelInvalidate _INVALIDATE
>
>
> По запросу /robots.txt backend выдает такое:
>
> -------------------------------------------------------------
> HTTP/1.1 200 OK
> Date: Mon, 18 Feb 2002 07:39:31 GMT
> Server: Apache/1.3.22 (Unix) PHP/4.1.0 mod_fastcgi/2.2.12 rus/PL30.9
> Set-Cookie: ..........
> Cache-Control: max-age=86400
> Expires: .... (тут стоит текущее время + 24 часа)
> Connection: close
> Content-Type: text/plain; charset=windows-1251
>
> user-agent: *
> _содержимое robots.txt_
> --------------------------------------------------------------
>
> Frontend это отлично кеширует. Все хорошо, пока не пришлось обновить
> robots.txt на backend. Обновили. Запрашиваем - frontend выдает
> закешированную старую версию. Запрашиваем
> http://frontend/robots.txt_INVALIDATE. Получаем новое содержимое.
> Снова запрашиваем http://frontend/robots.txt - опять старая
> закешированная версия. Такое впечатление, что _INVALIDATE запрос к
> backend-у делает, отдает клиенту новые данные, но кеш не обновляет.
Я подозреваю, что стоит 'AccelUnlinkNoCached off'.
Если да, то всё, что описано ниже - это нормально.
А вот вот выше действительно похоже на баг.
> Дальше больше. Добавляю во frontend:
>
> <Location "/robots.txt"> ╕
> AccelNoCache On ╕
> </Location>
>
> Рестартую. Предполагаю, что теперь уж точно про кеш забудет. Не
> помогает. Запрос с _INVALIDATE на конце выдает новое содержимое, а
> без него - старую версию из кеш.
>
> В общем, побороть удалось только, запустив find по всем каталогам
> кеша, найдя и удалив файл с закешированной старой версией ответа.
>
> Вот так. Очень похоже на баг, как будто бы. Да, чтобы быть точным,
> все это тестировалось на mod_accel/1.0.9, однако в новых версиях
> mod_accel я не нашел упоминания о том, что что-то подобное было
> починено.
Игорь Сысоев
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.