Я хочу сделать следующее с помощью модуля NGINX: Nginx получает запрос, проверяет, если он имеет ключ для декодирования запроса в кэше (обычая)NGINX: Создание двух асинхронно вызовов на внутренний сервер
- , если ДА, а затем декодировать запрос, получить идентификатор от него и проверить, есть ли значение для этого идентификатора в хранилище значений ключа (асинхронно) и вернуть его в ответе
- , если нет, затем получить новый ключ от хранилище ключей (асинхронно), а затем сохраните этот ключ в кеше и используйте его для декодирования запроса. Получите идентификатор и проверьте, есть ли значение для этого идентификатора в хранилище значений ключа (асинхронно) и отправляется в ответ.
Мне удалось выяснить, как сделать шаг 1, я написал восходящий модуль, обратив внимание на модуль nginx от openresty от github. Для достижения функциональности шага 2 я попытался создать новый запрос восходящего потока в функции process_header() первого вызова восходящего потока (например, получить ключ из хранилища), но это не сработало. Как достичь этого?
Заранее спасибо.
эй, спасибо за ответ. Я попробовал второй подход, который вы упомянули, но это не сработало для меня. Возможно ли отправить запрос nonHTTP в качестве подзапроса? Я хочу отправить запрос на [redis] (http://redis.io/topics/protocol) в качестве subRequest. –
и еще одна вещь, URI, который отправляется как параметр в ngx_http_subrequest(), добавляется в рабочий каталог nginx –
Да, можно отправить подзапрос HTTP. Укажите URl, который должен соответствовать вашему местоположению, использующему модуль redis2 как восходящий. –