Есть вопросы по поводу работы с функцией 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@xxxxxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
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 от веб-сервиса..