原文連接: 何曉東 博客html
應用場景:電商活動,準備了A B兩套風格的促銷頁面,想讓一半人看到 A 頁面,另外一半人看到 B 頁面,這樣來測試兩種的轉化成交效果。其餘在大版本升級測試的時候,防止有bug,能夠將小規模流量分發到最新代碼的服務器。
前置條件:nginx 須要安裝 ngx_http_split_clients_module
模塊,藉助這個模塊的 split_clients
指令完成分流,示例配置如:nginx
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 對應於值""(一個空字符串)。就這麼簡單就實現了分流到不一樣的頁面,以後能夠統計這個不一樣頁面的轉化成交率。git
© 原創文章,內容翻譯自 ngx_http_split_clients_module 文檔 github
一如既往推薦一些 付費課程,經過個人二維碼購買能夠享受八折優惠。算法