nginx OpenResty lua resty http 代理网关从无到有搭建

一、背景说明
准备在项目中基于nginx、OpenResty搭建一个简易网关,实现同一域名根据不同cookie代理不同docker功能,降低前端、移动端多业务线并行测试联调成本。简单来说就是服务端有多个测试环境docker分别部署不同业务需求代码,通过在前端、移动端种植cookie(存放服务端测试环境docker IP地址)方式让其具有可选择服务端测试环境能力,大大降低联调环境配置成本。具体cookie的解析逻辑在nginx中使用lua实现。

二、lua中读写header、cookie 代码

---获取请求header
local reqHeaders = ngx.req.get_headers();
---获取请求cookie
local reqCookie = reqHeaders["cookie"];
--读取cookie值
local pcip = ngx.var.cookie_pcip;
pcip=reqCookie["pcip"];
--设置赋值cookie
ngx.header['Set-Cookie']={"pcip=127.0.0.1;domain=.timer.com;path=/" }

注:在nginx.header['Set-Cookie'] 时遇到一个问题,一次性种植多个cookie时,会出现无法一次性全部种植成功的情况,需要多次请求种植方能全部种植成功,在实战中请慎用。尤其在ngx.say()方法调用之前种植cookie出现无法一次种植成功现象几率大,在ngx.print()方法调用之前种植cookie也会如此。
其他辅助代码:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值