Re: Использование сокетов в handler или filter модулях

Denis Erygin erygin at corp.mail.ru
Mon Jun 4 18:39:32 MSD 2007


Есть вопросы по поводу работы с функцией ngx_http_subrequest.

Насколько я понял из прохода дебаггером по модулю 
ngx_http_ssi_filter_module,
при вызове ngx_http_subrequest происходит вызов ngx_http_ssi_body_filter
два раза, причем. второй раз ему передается уже ответ (результат 
ngx_http_subrequest),
который прогоняется снова через ngx_http_ssi_parse. Это так задумано?


----- Original Message ----- 
From: "Valery Kholodkov" <valery at grid.net.ru>
To: <nginx-ru at sysoev.ru>
Sent: Monday, June 04, 2007 5:24 PM
Subject: Re: Использование сокетов в handler или filter модулях


Здравствуйте!

> Есть ли уже готовые функции для
> обращений на удаленные сервера через
> сокеты,
> в контексте handler или filter модуля?

Есть -- это ngx_http_subrequest в ngx_http_core_module.h.

> Я прошелся дебаггером по nginx -
> используются неблокирующие сокеты,
> поэтому нужен специфический механизм
> получения данных после запроса,
> но явных функций для этого пока в
> исходниках не нашел.

Посмотрите как в ngx_http_ssi_filter_module.c
происходит обработка контента в
неблокирующем режиме, в особенности
функции ngx_http_ssi_stub_output и ngx_http_ssi_set_variable.

> Зачем это нужно - например добавить в
> ngx_http_ssi_filter_module,
> возможность вставки страниц через
> удаленный вызов:
>
> <!--# include virtual="http://host.com" -->
>
> или получить XML от веб-сервиса..

Насколько я понимаю, это уже
реализовано, см.
http://sysoev.ru/nginx/docs/http/ngx_http_ssi_module.html.
Поправьте меня, если я неправ.

> Насчет интегрирования upstream в handler или
> filter модули тоже неясно.

Это должно помочь следующее
http://www.riceonfire.org/emiller/nginx-modules-guide.html

-- 
Best regards,
Valery Kholodkov







More information about the nginx-ru mailing list