Nginx基于Cookie实现ABTest

1、系统环境

系统版本:CentOS7.6,Nginx版本:1.18.0

2、灰度环境意义

1、针对特定用户展示灰度环境,分析功能迭代效果
2、测试人员进行新版本发布前的灰度环境测试
3、针对搜索引擎制定策略

3、添加Nginx源

cd /etc/yum.repos.d/
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

4、安装Nginx

安装依赖

yum install -y gcc pcre-devel openssl-devel zlib-devel

安装Nginx

yum install -y nginx

5、查看Nginx安装目录

whereis nginx

以下为默认配置:
(1) Nginx配置路径:/etc/nginx/
(2) PID目录:/var/run/nginx.pid
(3) 错误日志:/var/log/nginx/error.log
(4) 访问日志:/var/log/nginx/access.log
(5) 默认站点目录:/usr/share/nginx/html

6、编辑配置文件,实现Cookie分流

vim /etc/nginx/conf.d/default.conf

编辑default.conf

upstream test_01 {
    server IP1:port max_fails=1 fail_timeout=60;
}
 
upstream test_02 {
    server IP2:port max_fails=1 fail_timeout=60;
}
 
upstream default {
    server IP1:port max_fails=1 fail_timeout=60;
}
 
server {
  listen 80;
  server_name  www.test.cn;
 
  set $group "default";
    if ($http_cookie ~* "test=0"){
      set $group test_01;
    }
 
    if ($http_cookie ~* "test=1"){
      set $group test_02;
    }
 
  location / {                       
    proxy_pass http://$group;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    index  index.html index.htm;
  }
 }

7、配置说明

两台灰度服务器,分别命名为test_01、test_02,并配置IP、端口。
Cookie携带test=0或不存在test时,代理至test_01;cookie携带test=1时,代理至test_02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值