Re: Можно ли боротся с кэшэм страницы-заглушки?

Gena Makhomed gmm на csdoc.com
Вт Авг 3 15:00:06 MSD 2010


On 03.08.2010 12:04, Igor Sysoev wrote:

>>>> использую try_files /maintance.html @codeigniter;

>>>> и когда я создаю файл maintance.html
>>>> (заглушка), срабатывает nginx и "всё идёт
>>>> по плану". но беда, страница эта
>>>> попадает в кеш и когда я удаляю файл
>>>> maintance.html то пользователи продолжают её
>>>> видеть. срабатывает только нажатие
>>>> cntrl+f5(r)

>>> location = /maintenance.html {
>>>      root ...;
>>>      expires -1;
>>> }
>>
>> Это не поможет.
>> /maintenance.html обрабатывается внутри location'а с try_files.
>
> У меня появилась такая идея: добавить модификатор к имени для выполнения
> внутреннего редиректа, что-то вроде:
>
>        try_files  /maintenance.html>   $uri  $uri/  =404;
>
> Варианты: ">", "*>", "=>", "~>".

а может быть такой вариант:

синтакис:

try_files {files} [+ at location_yes] [@location_no];
переход в @location_yes если какой-либо файл найден
переход в @location_no если ни один из файлов не найден

варианты:

try_files {files} @location_no;
try_files {files} + at location_yes;
try_files {files} + at location_yes @location_no;

пример:

location / {
     root /home/www/example.com/htdocs;
     try_files /maintenance.mode + at maintenance;
     try_files $uri $uri/ @codeigniter;
}

location @maintenance {
     root /home/www/example.com/maintenance/htdocs;
     index maintenance.html
     expires -1;
}

или как вариант:

location @maintenance {
     return 200 "Site in maintenance-mode. Please try again later."
     expires -1;
}

при этом файл /maintenance.mode может быть пустым, и перевод
сайт в/из режима maintenance можно проводить простым способом:

touch /maintenance.mode
...
rm /maintenance.mode

-- 
Best regards,
  Gena




Подробная информация о списке рассылки nginx-ru