Welcome! Log In Create A New Profile

Advanced

Re: Несколько попыток подключения к backend

October 22, 2010 02:52AM
Мне кажется что это немножко не то, а именно предположим что очередь
входящих подключений для сокета достигла своего предела, тогда nginx сразу
же вернет 502 без ожиданий.

Сейчас у нас напиан fcgi прокси на питоне с участием twisted framework,
который ка раз и делает то что нам нужно, однако он довольно медленный и
отнимает драгоценное время CPU. Вот я и думаю может существуют более
скоростные решения?


PS: на самом деле этот прокси делает немного больше чем просто
проксирование, а именно он ещё в зависимости от запрашиваемой страницы
делает Http запросы на внешний адрес(таким образом мы выносим все ожидания
сети из php) сохраняет результат в php сессию ну и далее просто проксирует
вызовы между nginx и php.
PSPS: чтобы было хоть немного более понятно чего же я хочу привожу код
проксирующего метода

@inlineCallbacks
def proxy(self):
try:
self.transport.pauseProducing();

l_client = protocol.ClientCreator(reactor, Proxy);
l_attempts = 0;
l_protocol = None;

#устанавливаем соединение с реальным обработчиком (в нашем случае это
php) пытаемся это сделать 3 раза
while l_attempts < 15:
if self.transport.connected:
try:
l_protocol = yield l_client.connectUNIX(self.factory.proxysock);
break;

except Exception as fail:
l_attempts += 1;

if l_attempts < 15:
yield deferLater(reactor, 2, lambda:None);

else:
raise Exception("client disconected from soket before connection
be proxed");

else:
raise Exception("Connection attemps excid");

self.transport.resumeProducing();

for chunk in self._chunks:
l_protocol.transport.write(chunk);

l_protocol._setPeer(self);
self._setPeer(l_protocol);

except Exception as fail:
log.err("Can't proxy: %s" % (fail, ));
self.transport.loseConnection();




22 октября 2010 г. 8:56 пользователь Alex Vorona <voron@amhost.net> написал:

> 22.10.2010 02:03, ruslan usifov wrote:
>
>> А для fastcgi как задать timeout?
>>
>
> http://sysoev.ru/nginx/docs/http/ngx_http_fastcgi_module.html#fastcgi_connect_timeout
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Несколько попыток подключения к backend

tantra October 21, 2010 02:42PM

Re: Несколько попыток подключения к backend

Alex Vorona October 21, 2010 06:36PM

Re: Несколько попыток подключения к backend

tantra October 21, 2010 07:04PM

Re: Несколько попыток подключения к backend

Alex Vorona October 22, 2010 12:58AM

Re: Несколько попыток подключения к backend

tantra October 22, 2010 02:52AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 152
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready