Re: Кеширование через создание статических файлов

Vladimir Rusinov vladimir на greenmice.info
Ср Июл 6 14:05:28 UTC 2011


2011/7/6 achekalin <nginx-forum at nginx.us>

> Добрый день!
>
> Пытаюсь реализовать такую логику
> работы сайта, страницы на котором
> меняются достаточно редко:
>
> - приходит запрос на страницу
> - если страницы в виде статической
> версии (.html) нет, то вызываем php-скрипт
> генерации страниц, и этот скрипт отдает
> страницу и подкладывает ее в каталог со
> статическими страницами.
>

location /pages/ {
    try_files /path/to/cache/ @backend;
}

location @backend {
   proxy_pass/fastcgi_pass/etc.
}


> Сайт становится быстрее: кроме того,
> что скрипт генерации не вызывается на
> каждый хит, еще и last-modified отдается
> честный, т.е. браузер и nginx прекрасно
> договорятся безо всяких expire.
>
> Проблема: в Apache я такое делал через
> указание обработчиком 404 ошибки как раз
> скрипта генерации страниц, который,
> срабатывая, отдавал код http 200 (вместо 404)
> и контент страницы. В nginx как ни пытался
> (через обработчик 404, через try_files) - не
> получается.
>

Как пытались? По-моему решение вполне очевидно.
Какие проблемы возникли?


> я в nginx запутался
> банально с тем, что скрипт генерации
> страниц - это .php файл, т.е. его как-то
> надо отдельно обрабатывать (у меня php
> работает в Apache, на который проксируются
> запросы через nginx).
>

можно сделать что-то типа

location @gencache {
   proxy_pass http://apache/gencache.php?page=$uri;
}

Не уверен что это будет работать, но попробовать можно.

-- 
Vladimir Rusinov
http://greenmice.info/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20110706/d11f199d/attachment.html>


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