<br><br><div class="gmail_quote">2011/7/6 achekalin <span dir="ltr">&lt;<a href="mailto:nginx-forum@nginx.us">nginx-forum@nginx.us</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Добрый день!<br>
<br>
Пытаюсь реализовать такую логику<br>
работы сайта, страницы на котором<br>
меняются достаточно редко:<br>
<br>
- приходит запрос на страницу<br>
- если страницы в виде статической<br>
версии (.html) нет, то вызываем php-скрипт<br>
генерации страниц, и этот скрипт отдает<br>
страницу и подкладывает ее в каталог со<br>
статическими страницами.<br></blockquote><div><br></div><div>location /pages/ {</div><div>    try_files /path/to/cache/ @backend;</div><div>}</div><div><br></div><div>location @backend {</div><div>   proxy_pass/fastcgi_pass/etc.</div>
<div>}</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Сайт становится быстрее: кроме того,<br>
что скрипт генерации не вызывается на<br>
каждый хит, еще и last-modified отдается<br>
честный, т.е. браузер и nginx прекрасно<br>
договорятся безо всяких expire.<br>
<br>
Проблема: в Apache я такое делал через<br>
указание обработчиком 404 ошибки как раз<br>
скрипта генерации страниц, который,<br>
срабатывая, отдавал код http 200 (вместо 404)<br>
и контент страницы. В nginx как ни пытался<br>
(через обработчик 404, через try_files) - не<br>
получается.<br></blockquote><div><br></div><div>Как пытались? По-моему решение вполне очевидно.</div><div>Какие проблемы возникли?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
я в nginx запутался<br>
банально с тем, что скрипт генерации<br>
страниц - это .php файл, т.е. его как-то<br>
надо отдельно обрабатывать (у меня php<br>
работает в Apache, на который проксируются<br>
запросы через nginx).<br></blockquote><div><br></div><div>можно сделать что-то типа</div><div><br></div><div>location @gencache {</div><div>   proxy_pass <a href="http://apache/gencache.php?page=$uri">http://apache/gencache.php?page=$uri</a>;</div>
<div>}</div><div><br></div><div>Не уверен что это будет работать, но попробовать можно.</div></div><br>-- <br>Vladimir Rusinov<br><a href="http://greenmice.info/">http://greenmice.info/</a><br>