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

我是研究僧i 提交于 2019-11-26 16:05:09

安装好以后直接就可以配置实践了,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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!