Re: модуль nginx для работы с блокирующей операцией
Maxim Dounin
mdounin at mdounin.ru
Mon Apr 21 14:19:00 UTC 2014
Hello!
On Mon, Apr 21, 2014 at 09:46:08AM -0400, saaleb wrote:
> Здравствуйте.
>
> У меня есть необходимость в создании модуля nginx следующего плана:
>
> 1. Получение запроса HTTP
> 2. Разбор этого запроса
> 3. Упаковка в спец. формат
> 3. Подключение к удаленному серверу - блокирующая операция
> 4. Отправка запроса - блокирующая операция
> 5. Ожидание ответа - блокирующая операция
> 6. Распаковка
> 7. Отправка ответа.
>
> Я сделал модуль через handler, но похоже это не самый лучший вариант -
> веб-сервер на время блокирующих операций перестает обрабатывать остальные
> соединения и принимать новые. Как я понял, в данном случае нужно
> использовать upstream-тип модуля.
> Верно ли мое предположение?
> Есть ли возможность в upstream модуле получать уже распарсенные HTTP
> значения заголовков?
> Есть ли несложные для понимания примеры таких модулей?
Примеры модулей - proxy, fastcgi, scgi, uwsgi, memcached.
Наиболее простой из всех вышеперечисленных - memcached, на него и
имеет смысл смотреть в первую очередь.
Кроме того, пример реализации протокола для upstream с пояснениями
был у Evan'а Miller'а, ссылки есть тут:
http://nginx.org/en/links.html
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru