使用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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM