Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Хочется странного (синхронно/асинхронные запросы)
- To: nginx-ru@xxxxxxxxx
- Subject: Re: Хочется странного (синхронно/асинхронные запросы)
- From: Илья Винокуров <ilvin@xxxxxxx>
- Date: Wed, 25 Apr 2012 14:12:30 +0400
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail; h=Message-Id:Content-Type:Reply-To:In-Reply-To:References:Date:Mime-Version:Subject:To:From; bh=YFBYFPsiV8RnyvGxp5F16kHRszMdsHaIJLq8S5Jr7+4=; b=AukdX74USBdTPEsVx6kEa/xAmBzbJn4EWsua/l74EXUdM312XJMxB91/mXJ8LrHsXakph1M8kw/pyvyTdhoDCXX/vEIxJkPqrxJIf0pcZI8IpHvzO/svaaz9R8bP11TK;
- In-reply-to: <CAOrB69OfAP_MqjrcXowTgGGCdA5cuyoE5o-cOZmyJFWJjx6jg@mail.gmail.com>
- References: <CAOrB69OfAP_MqjrcXowTgGGCdA5cuyoE5o-cOZmyJFWJjx6jg@mail.gmail.com>
Здравствуйте, Андрей!
Вам хочется не конвертера, а работы FastCGI протокола в multiplex connections режиме.
Какая схема: 1) Много внешних клиентов открывают соединения с nginx 2) nginx открывает с FastCGI бекендом ограниченное количество FastCGI соединений в
multiplex connections режиме
3) nginx мультиплексирует запросы от большого количества внешних клиентов через ограниченное число FastCGI соединений. 4) FastCGI бекенд мультиплексирует ответы через ограниченное число FastCGI соединений. 5) nginx отдает ответы внешним клиентам.
На сколько я понял, nginx не поддерживает multiplex connections режим
FastCGI протокола, но движется в этом направлении: поддерживается keep-alive для FastCGI.
PS: multiplex connections режим
должен уметь еще и бекенд, но это уже другая история.
С почтением, Илья Винокуров.
Wed, 25 Apr 2012 10:13:33 +0400 от Andrey Velikoredchanin <uncleandyv@xxxxxxxxx>:
Всем привет!
Появилась необходимость в конверторе синхронных HTTP запросов в асинхронные. По идее, задача как раз для nginx, поэтому сюда и пишу.
Работать должно примерно так:
1. На определенный урл поступает HTTP запрос;
2. Конвертер сохраняет запрос вместе с его сокетом в буфер с определенным идентификатором; 3. Запрос с присоединенным идентификатором передается в модуль асинхронной обработки (обычный fastcgi который регистрирует запрос в очереди на обработку и закрывает коннект);
4. По окончанию обработки, модуль асинхронной обработки отправляет на второй определенный урл (урл конвертера) через HTTP запрос идентификатор запроса из п.2 и результатирующий ответ на первый запрос; 5. Конвертер извлекает из буфера ждущих соединений нужный сокет и отдает в него результатирующий ответ.
Необходимость проистекает из-за высокой нагрузки и многообразия алгоритмов обработки запросов.
Может быть, если не nginx, то есть какие-то другие решения?
Спасибо.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|