原文连接: 何晓东 博客html
应用场景:电商活动,准备了A B两套风格的促销页面,想让一半人看到 A 页面,另外一半人看到 B 页面,这样来测试两种的转化成交效果。其余在大版本升级测试的时候,防止有bug,能够将小规模流量分发到最新代码的服务器。
前置条件:nginx 须要安装 ngx_http_split_clients_module
模块,借助这个模块的 split_clients
指令完成分流,示例配置如:nginx
http { split_clients "${remote_addr}AAA" $variant { 0.5% .one; 2.0% .two; * ""; } server { location / { index index${variant}.html; } }
以上的配置会将原始 ip 地址加上 AAA 使用 MurmurHash2
算法进行 hash,在此示例中,若是哈希值从 0 到 21474835(0.5%)对应于变量 $variant 的 ".one" 值, 哈希值从 21474836 到 107374180(2%)对应于值 ".two",哈希值从 107374181 到 4294967295 对应于值""(一个空字符串)。就这么简单就实现了分流到不一样的页面,以后能够统计这个不一样页面的转化成交率。git
© 原创文章,内容翻译自 ngx_http_split_clients_module 文档 github
一如既往推荐一些 付费课程,经过个人二维码购买能够享受八折优惠。算法