Lua + Redis+openresty1.13灰度环境发布

nginx 配置

 

http {

upstream test1 {
server 127.0.0.1:8081;
}


upstream test2 {
server 127.0.0.1:8082;
}

server {
listen 80;
server_name localhost;
lua_need_request_body on;

location /test {
content_by_lua_block {

-- 获取headers 值
local data = ngx.req.get_headers()["aa"]
-- ngx.say("header: ", data)

-- 连接redis
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000)
local ok, err = red:connect("127.0.0.1", 6379)
if not ok then
-- ngx.say("faild to connect: ", err)
-- return
end

 

-- 获取redis内的key
local res, err = red:get("dog")

if not res then
-- ngx.say("failed to get dog: ", err)
-- return
end
-- ngx.say("get dog: ", res)
-- 判断headers 值和 redis存的键值是否一致,如果一致跳转到灰度环境
if data == res then
return ngx.exec("/test1")
end

-- 不一致跳转到正式环境
return ngx.exec("/test2")

}
}
location /test1 {
proxy_pass http://test1;

}

location /test2 {
proxy_pass http://test2;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值