layout: posttitle: Nginx 配置进行A\B测试
subtitle: Nginx 配置进行A\B测试
date: 2019-06-25
author: he xiaodong
header-img: img/default-post-bg.jpg
catalog: true
tags:
- Nginx
- A\B测试
- 分流
- split_clients

应用场景:电商活动,准备了A B两套风格的促销页面,想让一半人看到 A 页面,另一半人看到 B 页面,这样来测试两种的转化成交效果。其他在大版本升级测试的时候,防止有bug,可以将小规模流量分发到最新代码的服务器。

前置条件:nginx 需要安装 ngx_http_split_clients_module 模块,借助这个模块的 split_clients 指令完成分流,示例配置如:

  1. http {
  2. split_clients "${remote_addr}AAA" $variant {
  3. 0.5% .one;
  4. 2.0% .two;
  5. * "";
  6. }
  7. server {
  8. location / {
  9. index index${variant}.html;
  10. }
  11. }

以上的配置会将原始 ip 地址加上 AAA 使用 MurmurHash2 算法进行 hash,在此示例中,如果哈希值从 0 到 21474835(0.5%)对应于变量 $variant 的 “.one” 值, 哈希值从 21474836 到 107374180(2%)对应于值 “.two”,哈希值从 107374181 到 4294967295 对应于值””(一个空字符串)。就这么简单就实现了分流到不同的页面,之后可以统计这个不同页面的转化成交率。

© 原创文章,内容翻译自 ngx_http_split_clients_module 文档

最后恰饭 阿里云全系列产品/短信包特惠购买 中小企业上云最佳选择 阿里云内部优惠券