2011/7/6 achekalin
<nginx-forum@xxxxxxxx>
Добрый день!
Пытаюсь реализовать такую логику
работы сайта, страницы на котором
меняются достаточно редко:
- приходит запрос на страницу
- если страницы в виде статической
версии (.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 {
}
Не уверен что это будет работать, но попробовать можно.