ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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)?

Спасибо.

--
С уважением,
Сергей.



 




Copyright © Lexa Software, 1996-2009.