【问题标题】:Randomly returning a alternate page in Nginx for A/B testing在 Nginx 中随机返回一个备用页面进行 A/B 测试
【发布时间】:2012-12-22 21:51:21
【问题描述】:

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

【问题讨论】:

    标签: nginx


    【解决方案1】:

    您应该检查以下模块:

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

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

    【讨论】:

    【解决方案2】:

    具有负载均衡功能,

    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;
      }
     }
    }
    

    不是很漂亮,但可能有用:)

    【讨论】:

    • 有趣的想法。您将如何设置代理以使 A/B 测试仅影响某些浏览器(即桌面与移动)?
    【解决方案3】:

    可以使用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;
        }
      }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 2022-01-08
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多