我有一个Django网站,它使用fcgi在Nginx上运行 .
对于url /gifts/ 我想使用openresty在nginx.conf文件中的lua中实现一些逻辑 .
location /gifts {
try_files $uri @redis_cache;
}
location @redis_cache {
default_type text/html;
content_by_lua '
-- fetching key and values from url
local args = ngx.req.get_uri_args()
--creating redis connection
local redis = require "resty.redis";
local red = redis:new()
red:set_timeout(1000) -- 1 sec
local ok, err = red:connect("127.0.0.1", 6379)
if not ok then
ngx.log(ngx.ERR, err, "Redis failed to connect")
return ngx.exit(ngx.HTTP_SERVICE_UNAVAILABLE)
end
if not args["key"] then
return ngx.exit(ngx.HTTP_NOT_FOUND)
end
if args["value"] then
local ok, err = red:set(args["key"], args["value"])
end
if not ok then
ngx.say("Please pass key value pair to store in cache", err)
end
-- getting data from redis cache
local res, err = red:get(args["key"])
if not res then
return ngx.say("value is not in redis cache", err, "|")
end
ngx.say("Value found in Redis is: ", res)
';
}
根据要求,Everythig工作正常,但如果缓存不可用于Redis,我想将请求重定向到fcgi有一个问题 .
请帮我解决这个问题 .