2

我想使用 NGINX 模块执行以下操作:Nginx 接收请求,检查它是否具有在缓存中解码请求的密钥(自定义)

  • 如果是,则解码请求,从中获取 ID,并检查键值存储(异步)中是否有针对此 ID 的值并在响应中返回
  • 如果否,则从键值存储(异步)中获取新键,然后将此键存储在缓存中并使用它来解码请求。获取 ID 并检查键值存储中是否有针对此 ID 的值(异步)并在响应中发送。

我能够弄清楚如何执行第 1 步,我通过从github引用 openresty 的 nginx 模块编写了一个上游模块。为了实现第 2 步功能,我尝试在第一个上游调用的 process_header() 函数中创建一个新的上游请求(即从商店获取密钥),但这不起作用。如何做到这一点?

提前致谢。

4

1 回答 1

2

我看到两种方法:

  1. 你可以在 Lua 中使用lua-nginx-modulelua-resty-redis库来完成这一切。在这里您可以找到一些信息Configure-nginx-to-get-url-from-redis-with-key-and-proxy-the-url-to-other-server

  2. 编写nginx C模块,使用redis2-nginx-module作为上游模块,发送子请求。看看我对子请求未发送或请求挂起的回答它显示了如何发送子请求。

于 2015-08-11T15:22:16.730 回答