• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

openresty-lua-redis实现简单的灰度发布lua-openresty的最佳案例-如何利用nginx实现生 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.灰度发布拓扑图,公司本地访问服务进灰度环境,其他的访问原来生产。

 

 2.nginx.conf的配置

[root@VM_0_7_centos conf]# cat nginx.conf
worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}

 
 
http {
include vhost/*.conf;
server {
        listen       22222;
        server_name  10.0.0.7 www.a.com localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
        default_type 'text/plain';
 
        location /test {
            content_by_lua_file /Users/chenguowei/local/openresty/nginx/lua_conf/huidu.lua;
        }
 
        location @client1 {
            proxy_pass http://client1;
        }
 
        location @client2 {
            proxy_pass http://client2;
        }
}
}

 

3.nginx的lua脚本

当来源的IP是myip时,就进灰度,其他的进生产环境。如果有密码加一句 在red:auth("密码") 即可。 参考:https://blog.csdn.net/weixin_42085428/article/details/104898500

[root@VM_0_7_centos ~]# cat   /Users/chenguowei/local/openresty/nginx/lua_conf/huidu.lua
local redis = require "resty.redis"
local cache = redis.new()
cache:set_timeout(60000)
 
local ok, err = cache.connect(cache, "10.0.0.205", 6379)
cache:auth("密码")
if not ok then ngx.say("failed to connect: redis", err) return end local local_ip = ngx.req.get_headers()["X-Real-IP"] if local_ip == nil then local_ip = ngx.req.get_headers()["x_forwarded_for"] end if local_ip == nil then local_ip = ngx.var.remote_addr end local intercept = cache:get("myip") if intercept == local_ip then ngx.exec("@client2") return end ngx.exec("@client1") --之前不能有任何的ngx.say()函数执行过,否则请求会出错 local ok, err = cache:close() if not ok then ngx.say("failed to close: ", err) return end

4.redis设置我的IP

[root@VM_0_42_centos src]# ./redis-cli -h 10.0.0.205 -p 6379
10.0.0.205:6379> set myip 10.0.0.7
OK
10.0.0.205:6379> 

 参考: https://blog.csdn.net/gochenguowei/article/details/85041578   

             https://www.ogeek.net/article/114804.htm


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
linux下lua运行环境安装发布时间:2022-07-22
下一篇:
Linux-023-Centos Nginx Lua 脚本三种基本引用方式示例发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap