閱讀原文: nginx基于cookie灰度發布
灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。AB test就是一種灰度發布方式,讓一部分用戶繼續用A,一部分用戶開始用B,如果用戶對B沒有什么反對意見,那么逐步擴大范圍,把所有用戶都遷移到B上面 來。灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度。
前端nginx服務器監聽端口80,需要根據cookie轉發,查詢的cookie的鍵(key)為test(該鍵由開發負責增加),如果該cookie值(value)為1則轉發到web1,不為2則轉發到web2
upstream web1 {
server 192.168.56.102 weight=1 max_fails=3 fail_timeout=3;
}
upstream web2 {
server 192.168.56.103 weight=1 max_fails=3 fail_timeout=3;
}
server ....
location ~ / {
set $coo "1";
if ($http_cookie ~* "test=1") {
set $coo web2;
}
if ($http_cookie !~* "test=1") {
set $coo web1;
}
proxy_pass http://$coo;
include proxy.conf;
}
}
php設置cookie方法
<?php
$value = '1';
setcookie("test",$value);
閱讀原文: carey的博客