Lua with nginx in openresty:如果在 redis 缓存中找不到数据,则将请求传递给 FastCGI
Posted
技术标签:
【中文标题】Lua with nginx in openresty:如果在 redis 缓存中找不到数据,则将请求传递给 FastCGI【英文标题】:Lua with nginx in openresty : pass a request to FastCGI if data does not found in redis cache 【发布时间】:2013-11-28 13:49:08 【问题描述】:我有一个使用 fcgi 在 nginx 上运行的 Django 网站。
对于 url /gifts/
,我想通过使用 openresty 在 nginx.conf 文件中的 lua 中实现一些逻辑。
一切都按照要求正常工作,但是如果缓存在 Redis 中不可用,我想将请求重定向到 fcgi。 请帮助我如何进行此操作。
【问题讨论】:
【参考方案1】:如果您只想提供来自 fcgi 的内容,请使用 internal redirection。如果您还想从 Lua 中填充缓存,则应该查看 subrequests。
【讨论】:
谢谢。你能提供任何子请求的示例代码吗?谢谢 类似:local value = ngx.location.capture("/my_fcgi_url").body; red:set(args["key"], value); return ngx.say("Value from FCGI: ", value)
当然添加错误检查等。阅读ngx.location.capture
文档。以上是关于Lua with nginx in openresty:如果在 redis 缓存中找不到数据,则将请求传递给 FastCGI的主要内容,如果未能解决你的问题,请参考以下文章