閱讀原文: nginx基于cookie灰度發(fā)布
灰度發(fā)布是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式。AB test就是一種灰度發(fā)布方式,讓一部分用戶繼續(xù)用A,一部分用戶開始用B,如果用戶對(duì)B沒有什么反對(duì)意見,那么逐步擴(kuò)大范圍,把所有用戶都遷移到B上面 來?;叶劝l(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時(shí)候就可以發(fā)現(xiàn)、調(diào)整問題,以保證其影響度。
前端nginx服務(wù)器監(jiān)聽端口80,需要根據(jù)cookie轉(zhuǎn)發(fā),查詢的cookie的鍵(key)為test(該鍵由開發(fā)負(fù)責(zé)增加),如果該cookie值(value)為1則轉(zhuǎn)發(fā)到web1,不為2則轉(zhuǎn)發(fā)到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設(shè)置cookie方法
<?php
$value = '1';
setcookie("test",$value);
閱讀原文: carey的博客