<HTML><BODY>
Допустим, есть фронтенд (nginx) и есть некий бэкенд<br>В конфиге фронтенда что-нить в духе<br><br>location /news/ {<br> set $backend_content_url /backend/some/uri$uri;<br> rewrite ^(.*)$ /frontend/layouts/news.shtml;<br>}<br>...<br>location /frontend/ {<br> internal;<br> ssi on;<br> root /some_dir/frontend;<br>}<br>...<br>location /backend/ {<br> internal;<br> fastcgi_pass ......<br> ...<br> вобщем, на бэкенд за контентом<br>}<br><br>layout_one.shtml представляет из себя что-нить в духе<br><html><br> <head><br> ..<br> </head><br><body><br> <div class="header"><br> ...<br> </div><br> <div class="content"><br> <!--# if expr="$backend_content_url" --><!--# include virtual="$backend_content_url" --><!--# end if --><br> </div><br> <div class="header"><br> ...<br> </div><br></body><br></html><br><br>То есть, допустим, на фронтенде лежат лэйауты страниц, собирающие данные из разных кусочков (что-то из кеша, что-то непосредственно из бэкенда и т.п.).<br>И при этом возникает следующая проблема -- как реализовать "нормальную реакцию" на ошибки?<br>Что имеется в виду:<br> 1. пользователь обращается по какому-то урлу (ну, скажем, посмотреть некую новость с id=125)<br> 2. фронтенд по урлу определяет, какой именно лэйаут следует использовать для формирования страницы просмотра новости, загружает этот лэйаут (shtml) и исполняет его ssi-команды, которые "собирают" страницу из кусочков через include virtual/include file<br> 3. пользователь видит готовую страницу<br> 3а. НО: если новости с заданным id не существует, то хотелось бы отдать пользователю 404 или редиректнуть его куда-нибудь сообразно логике приложения<br><br>Однако, как это сделать, если о том, что "новости с таким id не существует!" знает бэкенд , и происходит это уже где-то в середине формирования страницы (то есть на этапе include virtual)?<br>Таким образом, имеем вопрос: можно ли каким-то образом буферизировать сборку страницы с целью проверить, не вернула ли в процессе сборки какая-то значимая её часть интересный нам код ошибки, чтобы на основании этих данных принять окончательное решение -- отдать собранный контент пользователю или же прервать "сборку страницы" и куда-нить его (пользователя) редиректнуть?<br><br></BODY></HTML>