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