API

Igor Sysoev is at rambler-co.ru
Wed May 25 09:11:42 MSD 2005


On Tue, 24 May 2005, Alexey Bestciokov wrote:

> хочется[нужно] написать модуль котороый будет коннектицца к memcached и
> вытаскивать оттуда некоторые переменные (на основании id из куки плюс
> predefined ) - чтобы потом использовать их в ssi.
>
> исходя из этого по идее модуль должен быть фильтром и вставать в
> цепочку перед ssi, но, как я понял, для общения с "внешними" серверами модуль должен
> быть "конечным" обработчиком http запроса и ставить себя в
> content_handler, во всяком случае если использовать механизм
> ngx_http_upstream - то есть его можно бужет вызвать
> субреквестом и вставить полученные данные в нужные места, но, если я
> правильно понял, это лишнее соединение с memcached сервером на каждый
> запрос, ну и дублирование обработки данных полученных от него.
>
> есть ли на данный момент какой либо механим который позволит это
> сделать по другому и с минимальными затратами ?
>
> или я вообще всё неправильно понял ?

Насчёт ngx_http_upstream и прочего - верно. Соединения в принципе можно
кэшировать, но пока это не реализовано.

Однако, если нужны только переменные, то можно использовать механизм
переменных, например, как сделано в ngx_http_geo_module,
ngx_http_proxy_module, ngx_http_fastcgi_module и прочих. Модуль
регистрирует нужные имена переменных с помощью ngx_http_add_variable().
Обработчик переменной при первом же обращении соединяется с memcached.
Это соединение остаётся постоянным до тех пор, пока memcached его не закроет.

Кстати, возможно, поддержка memcached в таком виде со временем появится.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list