Я пишу модуль NGINX на C, для которого требуется доступ к Redis.
Чтобы сделать эти вызовы неблокирующими, я хочу использовать асинхронный доступ к ним (либо с официальным C API для Redis, либо с помощью модуль redis2-nginx).
Я прочитал Руководство Эмиллера и мне кажется, что мне нужно создать «цепочка» модулей. Что-то типа:
Мой модуль анализирует HTTP-запрос, отправляет соответствующий запрос другому модулю, который работает с Redis асинхронно, как «вверх по течению» (?)
В ответе Redis управление возвращается моему модулю, и он завершает ответ HTTP, отправляя данные обратно на сервер.
Чего я не понимаю, так это как реализовать эти цепочки? Я с трудом могу найти хороший пример, кажется, что все встроенные модули NGINX перенаправляют управление на себя (u = r->upstream;)? Есть ли способ указать другой модуль в качестве восходящего?
Благодарим вас за помощь с хорошим примером кода цепочки.