Добрый день!
Речь идет о директиве 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-у делает, отдает клиенту новые данные, но кеш не обновляет.
Дальше больше. Добавляю во frontend:
<Location "/robots.txt"> ╕
AccelNoCache On ╕
</Location>
Рестартую. Предполагаю, что теперь уж точно про кеш забудет. Не
помогает. Запрос с _INVALIDATE на конце выдает новое содержимое, а
без него - старую версию из кеш.
В общем, побороть удалось только, запустив find по всем каталогам
кеша, найдя и удалив файл с закешированной старой версией ответа.
Вот так. Очень похоже на баг, как будто бы. Да, чтобы быть точным,
все это тестировалось на mod_accel/1.0.9, однако в новых версиях
mod_accel я не нашел упоминания о том, что что-то подобное было
починено.
С уважением,
Сергей Герштейн
--
телекоммуникационная компания Урал Релком
тел. (3432) 776440, 598721, факс 594956
mailto:sg@xxxxxhttp://ur.ruhttp://e1.ruhttp://uralweb.ru
=============================================================================
= 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.