2015-05-21 2 views
1

Мне нужен сервер nginx, который получает HTTP-запрос и отправляет ответ от Redis-store, и это должно быть неблокирующим. После Googling и прохождения форумов я наткнулся на nginx_redis2_module. Я попытался пройти код, но не смог понять, как это работает. Как они достигли неблокирующей операции? Достигли ли они этого, добавив события в цикл событий nginx? Есть ли какой-либо документ или образец кода, как это делается?Как nginx_redis2_module достигает неблокирующей операции?

источник: https://github.com/openresty/redis2-nginx-module

ответ

1

Суть Nginx является не блокирующими модулями. Это сложная область. Здесь вы можете найти некоторые отправные точки: how to write Nginx module?

FYI:

При использовании в сочетании с Lua-Nginx-модуль, рекомендуется использовать библиотеку Lua-Resty-Redis вместо этого модуля хотя, потому что первый намного более гибкий и эффективный с точки зрения памяти.

+0

Я знаю, как писать базовый модуль nginx, на самом деле я даже написал модуль redis, но он не является неблокирующим. Я хочу неблокирующий. Я также видел «lua_nginx_module» и «nginx_redis2_module». Хотите знать, как они работают, и как они достигают неблокирующих операций. –

+0

Большая картинка - вы создаете подзапрос и nginx возвращает управление вашему модулю и запрашивает контекст после ответа, тогда вы можете создать ответ для исходного запроса. Http://www.evanmiller.org/nginx-modules-guide-advanced.html# subrequests –

+0

хорошо, позвольте мне попробовать это –

Смежные вопросы