利用openresty-lua生态修改upstream后端服务

0.动态upstream的好处

openresty作者,最近也要开源(在我编写此文章时还没开源)他们已经使用的balancer-by-lua 特性,进展issues。能动态修改upstream,使用反向代理proxy_pass, 对后端进程或机器进行:

  • 动态的负载均衡控制;
  • 平滑上下线服务,升级服务;
  • 高可能保证–自动踢离线服务下线;

1.先说原理

想法参考自<http://sosedoff.com/2012/06/11/dynamic-nginx-upstreams-with-lua-and-redis.html>。此文章的做法是写进redis中,好处是能多机同时切换,不足是论询redis太频繁。基于openresty,使用lua的控制一个内存中的一个多进程全局变量(ngx.shard),按需地变改proxy_pass的目标upsteam。

2 直接上配置代码

http{
  lua_shared_dict _G 1m;  # ngx多进程全局共享内存,保存upstream值
  ......
  upstream default_upstream {
     server unix:/var/run/app-1.so
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值