Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Проблема: использовани е неблокирующих сокетов в handler'е
- To: nginx-ru@xxxxxxxxx
- Subject: Проблема: использовани е неблокирующих сокетов в handler'е
- From: Sergey Samokhin <neavirc@xxxxxxxxx>
- Date: Mon, 21 Jul 2008 14:03:44 -0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:content-type :content-transfer-encoding; bh=xs1nlzzDUHwD/2PZml6tFVtTm27vhFH4rz3m0t08HcY=; b=WcWwGWIOFZKzID1XeovhXIsRI5z0K39y9oFCuKYqaOTvaOcM+LxkZkKVZWi8a9Ezn9 zeFNxDed8cHGo5Isexj9GP6NxprIisTmYZhEB6uwum2eySgj23BCUWH91eFIN99m6LgN Ldq2inpKx88eiJETipMnsX34nA2jGshfOsBZA=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; b=bztz7qMFiZBQtSs+8mh3wDOqpOYGcC1LL79h8+jeKpDnyrTTc9aEPLQQs6lcAQyhsL zhDnnEEPgojZRmAzqWSYks1yDuvCbZKgXLwZWzYEGX9a9W3q7lVKdU7KQ5ugDitzyJ01 Pd5sRkp8t0QBrBLRxuCwbt+QWhAVoFFAdI0FU=
Здравствуйте.
Есть модуль, который в своем обработчике отправляет стороннему приложению
некоторую информацию о запросе (заголовки и пр.) используя блокирующие
сокеты.
После этого модуль получает ответ от приложения, и используя его
генерирует response
для пользователя.
Очень хочется заменить блокирующие сокеты на неблокирующие, т.к.
организовать
работу модуля примерно так:
1. Получив запрос от пользователя воркер отсылает данные через
неблокирующий сокет
и переключается к следующему запросу, не обрывая соединения с клиентом
2. Когда стороннее приложение ответило на запрос, отправленный в п. 1
nginx возвращается
к состоянию п.1 и используя полученные данные генерирует ответ для
пользователя и
закрывает соединение
Я пока очень смутно представляю как это можно было бы реализовать :/
Если такое уже где-то реализовано в nginx, то подскажите в какие
модули/функции посмотреть =)
Нужно ли использовать какие-то nginx'овские обертки над сокетами (типа
ngx_event_connect)?
Спасибо.
--
С уважением,
Сергей.
|