原文鏈接: 何曉東 博客
應用場景:電商活動,準備了A B兩套風格的促銷頁面,想讓一半人看到 A 頁面,另一半人看到 B 頁面,這樣來測試兩種的轉化成交效果。其他在大版本升級測試的時候,防止有bug,可以將小規模流量分發到最新代碼的服務器。
前置條件:nginx 需要安裝 ngx_http_split_clients_module
模塊,藉助這個模塊的 split_clients
指令完成分流,示例配置如:
http {
split_clients "${remote_addr}AAA" $variant {
0.5% .one;
2.0% .two;
* "";
}
server {
location / {
index index${variant}.html;
}
}
以上的配置會將原始 ip 地址加上 AAA 使用 MurmurHash2
算法進行 hash,在此示例中,如果哈希值從 0 到 21474835(0.5%)對應於變量 $variant 的 ".one" 值, 哈希值從 21474836 到 107374180(2%)對應於值 ".two",哈希值從 107374181 到 4294967295 對應於值""(一個空字符串)。就這麼簡單就實現了分流到不同的頁面,之後可以統計這個不同頁面的轉化成交率。
© 原創文章,內容翻譯自 ngx_http_split_clients_module 文檔
一如既往推薦一些 付費課程,通過我的二維碼購買可以享受八折優惠。