Мне кажется что это немножко не то, а именно предположим что очередь входящих подключений для сокета достигла своего предела, тогда nginx сразу же вернет 502 без ожиданий.<br><br>Сейчас у нас напиан fcgi прокси на питоне с участием twisted framework, который ка раз и делает то что нам нужно, однако он довольно медленный и отнимает драгоценное время CPU. Вот я и думаю может существуют более скоростные решения?<br>
<br><br>PS: на самом деле этот прокси делает немного больше чем просто проксирование, а именно он ещё в зависимости от запрашиваемой страницы делает Http запросы на внешний адрес(таким образом мы выносим все ожидания сети из php) сохраняет результат в php сессию ну и далее просто проксирует вызовы между nginx и php.<br>
PSPS: чтобы было хоть немного более понятно чего же я хочу привожу код проксирующего метода<br><br> @inlineCallbacks<br> def proxy(self):<br> try:<br> self.transport.pauseProducing();<br><br> l_client = protocol.ClientCreator(reactor, Proxy);<br>
l_attempts = 0;<br> l_protocol = None;<br><br> #устанавливаем соединение с реальным обработчиком (в нашем случае это php) пытаемся это сделать 3 раза<br> while l_attempts < 15:<br> if self.transport.connected:<br>
try:<br> l_protocol = yield l_client.connectUNIX(self.factory.proxysock);<br> break;<br><br> except Exception as fail:<br> l_attempts += 1;<br><br> if l_attempts < 15:<br>
yield deferLater(reactor, 2, lambda:None);<br><br> else:<br> raise Exception("client disconected from soket before connection be proxed");<br><br> else:<br> raise Exception("Connection attemps excid");<br>
<br> self.transport.resumeProducing();<br><br> for chunk in self._chunks:<br> l_protocol.transport.write(chunk);<br><br> l_protocol._setPeer(self);<br> self._setPeer(l_protocol);<br><br> except Exception as fail:<br>
log.err("Can't proxy: %s" % (fail, ));<br> self.transport.loseConnection();<br><br><br><br><br><div class="gmail_quote">22 октября 2010 г. 8:56 пользователь Alex Vorona <span dir="ltr"><<a href="mailto:voron@amhost.net">voron@amhost.net</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">22.10.2010 02:03, ruslan usifov wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
А для fastcgi как задать timeout?<br>
</blockquote>
</div><a href="http://sysoev.ru/nginx/docs/http/ngx_http_fastcgi_module.html#fastcgi_connect_timeout" target="_blank">http://sysoev.ru/nginx/docs/http/ngx_http_fastcgi_module.html#fastcgi_connect_timeout</a><div><div></div>
<div class="h5"><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
</div></div></blockquote></div><br>