Я пожалуй обрисую ситуацию, думаю это прояснит что и как.
Есть некий PHP скрипт, который вызывается порядка 5-10 раз в секунду.
Результат работы скрипта сформировать документ с несколькими разными SSI
вызываюшихся с
этогоже сервера.
Пример результата работы скрипта
<!--# include virtual="/ssi1/index.php?'.$request.'" -->
<!--# include virtual="/ssi2/index.php?'.$request.'" -->
<!--# include virtual="/ssi3/index.php?'.$request.'" -->
<!--# include virtual="/ssi4/index.php?'.$request.'" -->
<!--# include virtual="/ssi5/index.php?'.$request.'" -->
<!--# include virtual="/ssi6/index.php?'.$request.'" -->
Для каждого из ssi путей, описан свой location в nginx. Если я всё правильно
понял, то в
приведённом выше примере, nginx сразу запросит 6 locations и будет их парадедтно
исполнять.
Да.
Каждый из этих location для SSI описан как proxy_pass .... то есть реально
происходит
сразу 6 запросов к различным серверам, каждый из которых описан в своём
location.
Помножая на число запросов к первоначальному скрипту, получаем 30-60 запросов в
секунду от
SSI locations.
В результате в nginx-error-log валится в окромном количестве сообщения
2006/10/11 10:14:02 [error] 7783#0: *241647 upstream timed out (110: Connection
timed out) while sending to client
и тогдалее.
ВОПРОС: Есть ли какие либо ограничения на подобное испольование SSI ? Спасибо !
Если нужно чтобы запросы выполнялись последовательно, то нужно поставить
параметр wait="yes":
<!--# include virtual="/ssi1/index.php?'.$request.'" wait="yes"-->
<!--# include virtual="/ssi2/index.php?'.$request.'" wait="yes"-->
...
Игорь Сысоев
http://sysoev.ru