随机返回Nginx中的备用页面以进行A / B测试

时间:2013-01-08 22:34:19

标签: nginx

对于给定的URL和User-Agent标题,是否有办法在Nginx中返回20%的不同页面(用于A / B测试)?

3 个答案:

答案 0 :(得分:3)

您应该检查以下模块:

http://nginx.org/en/docs/http/ngx_http_split_clients_module.html

它完全是为A / B测试而创建的。

答案 1 :(得分:1)

使用loadbalance功能,

http {
 upstream myproject {
  server 127.0.0.1:8000 weight=4;
  server 127.0.0.1:8001;
 }

 server {
  listen 80;
  server_name www.domain.com;
  location / {
    proxy_pass http://myproject;
  }
 }

 server {
  listen 8000;
  location / {
   root /var/www/A;
  }
 }

 server {
  listen 8001;
  location / {
   root /var/www/B;
  }
 }
}

不太好看,但也许有效:)

答案 2 :(得分:0)

可以在配置中使用 split_clients 模块

http {
  upstream myproject1 {
    server 127.0.0.1:8000;
  }

  upstream myproject2 {
    server 127.0.0.1:8001;
  }

  split_clients $remote_addr $upstream {
      25% myproject2;
      * myproject1;
  }


  server {
    listen 80;
    server_name www.domain.com;
    location / {
      proxy_pass http://$upstream;
    }
  }

}