Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[apache-talk] =?KOI8-R?B?69zbydLP18HOycUgySDL1cvJ?=
Hi!
Хотел посоветоваться насчёт настройки кэширования. Имеется доска объявлений
с настройками просмотра (настройки реализованы через одну куку).
Конфигурация акселератора следующая:
<Location />
AccelAddvia on
AccelAddXForwardedFor on
AccelBusyLock 20 25 30
AccelPassCookie on
AccelSetXHost on
AccelSetXRealIP on
AccelIgnoreAuth on
AccelInvalidate _FRESHME
</Location>
<Location /cgi/board>
AccelCacheCookie b
</Location>
Сами скрипты выдают Cache-Control: 900 (15 минут).
Имеем следующий глюк (подразумевается, что в браузерах стоят настройки
кэширования по умолчанию - для Мозиллы это "Когда страница устареет"):
Приходит клиент на доску объявлений, ему в кук падают дефолтные настройки
(если кука не было). Там отбор по региону выключен (одна из настроек) -
стоит "все регионы". Бродит по разделам доски, потом решает поставить регион
== "Москва". Форма отправляется GET'ом, видит нормальную страницу. При
возврате на одну из уже пройденных _им_ страниц (которые имеются в кэше
броузера и в кэше акселератора) видим, что по-прежнему стоит "все регионы".
Т.е. броузер "прочухал", что 15 минут еще не прошли (и правильно прочухал) и
решил страницу не запрашивать - в обоих логах (backend & frontend) тихо.
Если сделать релоад, то видим все правильно (акселератор отрабатывает
директиву AccelCacheCookie).
Вопрос: как с этим бороться кроме отключения кэширования и изменения
настроек клиентов? Было бы идеально, чтобы "наружу" акселератор отдавал
"Pragma: no-cache", заставляя броузеры обращаться к нему при "первом же
чихе", а Cache-Control: XXX из скриптов предназначались бы только для него,
акселератора и больше ни для кого другого.
--
WBR, Andrey Brindeew.
"No one person can understand Perl culture completely"
(C) Larry Wall.
Attachment:
pgp00016.pgp
Description: PGP signature
|