根据每个接收到的响应链接顺序请求处理程序

时间:2013-09-05 13:52:35

标签: nginx lua

我想设置nginx,它可以根据它提供的响应顺序处理多个请求处理程序。

  1. 收到请求
  2. 检查是否缓存在内存中的nginx,如果是,则返回no goto 3
  3. 如果没有转到4
  4. ,则检查Redis是否有此请求
  5. 转到反向代理上游服务器并返回
  6. 由于非阻塞操作在redis中保存响应数据(内存缓存将按原样更新)
  7. 进入Redis的原因是我将在Redis中以各种结构保存数据,并且可以从这些不同的结构中检索数据,然后从Redis键合并这些块来处理它以发送实际的数据。

    输入/输出是XML。

1 个答案:

答案 0 :(得分:1)

使用ngx_srcache + ngx_redis / ngx_redis2可以实现步骤3,4,5:

http://wiki.nginx.org/HttpSRCacheModule

虽然第2步可以通过ngx_lua的rewrite_by_lua指令在同一位置完成:

http://wiki.nginx.org/HttpLuaModule#rewrite_by_lua

步骤1始终由Nginx核心完成:)

如果您可以通过ngx_lua的cosocket API访问您的HTTP后端服务,那么所有这些步骤都可以在Lua中完成(在ngx_lua的content_by_lua中)。您需要lua-resty-redis非阻塞地访问Redis,并且lua-resty-http-simple(例如)访问远程HTTP服务。