使用openresty实现按照流量百分比控制的灰度分流控制

安装好以后直接就可以配置实践了,openresty将lua都集成好了,nginx配置文件无需特殊声明引入lua file。

1.nginx.conf 添加两个灰度发布的环境 #grey 灰度环境地址 #prd生产环境地址

http块操作

    upstream grey {
        server 127.0.0.1:8080;
    }

    upstream prd {
        server 139.162.116.84:8080;
    }

server块操作,添加对应location

    location @grey{
        proxy_pass http://grey  
    }

   

    location @prd{
        proxy_pass http://prd  
    }
    
    # 在server 里根location指定lua文件
    location / {
        default_type 'text/html';
        content_by_lua_file /root/openresty/nginx/conf/lua_conf/grey.lua;
    }
[root@luka77 lua_conf]# cat penresty/nginx/conf/lua_conf/grey.lua
foreign_env = 'grey'
china_env = 'prd'
--流量比率
abtest_num = 50   
local num = math.random(100);
if (num <= abtest_num) then
   ngx.log(ngx.INFO,'use foreign environment',foreign_env)
   ngx.exec("@"..foreign_env)
else
   ngx.log(ngx.INFO,'use foreign environment',china_env)
   ngx.exec("@"..china_env)
end
posted @ 2019-08-09 10:28  哈喽哈喽111111  阅读(1999)  评论(0编辑  收藏  举报