使用Nginx實現灰度發布

2022-06-11 04:57:12 字數 1470 閱讀 6539

灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。ab test就是一種灰度發布方式,讓一部分使用者繼續用a,一部分使用者開始用b,如果使用者對b沒有什麼反對意見,那麼逐步擴大範圍,把所有使用者都遷移到b上面來。

灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度。

灰度發布常見一般有三種方式:

nginx+lua方式

根據cookie實現灰度發布

根據來路ip實現灰度發布

本文主要將講解根據cookie和來路ip這兩種方式實現簡單的灰度發布

根據cookie查詢cookie鍵為version的值,如果該cookie值為v1則**到hilinux_01,為v2則**到hilinux_02。cookie值都不匹配的情況下預設走hilinux_01所對應的伺服器。

兩台伺服器分別定義為:

hilinux_01 192.168.1.100:8080

hilinux_02 192.168.1.200:8080

用if指令實現

}在nginx裡面配置乙個對映,$cookie_version可以解析出cookie裡面的version欄位。$group是乙個變數,{}裡面是對映規則。

如果乙個version為v1的使用者來訪問,$group就等於hilinux_01。在server裡面使用就會**到http://hilinux_01上。version為v2的使用者來訪問,$group就等於hilinux_02。在server裡面使用就會**到http://hilinux_02上。cookie值都不匹配的情況下預設走hilinux_01所對應的伺服器。

upstream hilinux_01 

upstream hilinux_02

upstream default

map $cookie_version $group

server

}

如果是內部ip,則反向**到hilinux_02(預發布環境);如果不是則反向**到hilinux_01(生產環境)。

upstream hilinux_01 

upstream hilinux_02

upstream default

server

location /

}

server 

location /

}

使用Nginx實現灰度發布

灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。ab test就是一種灰度發布方式,讓一部分使用者繼續用a,一部分使用者開始用b,如果使用者對b沒有什麼反對意見,那麼逐步擴大範圍,把所有使用者都遷移到b上面來。灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現 調整問題,以保證其影響度...

使用Nginx實現簡單灰度發布

灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現 調整問題,以保證其影響度。注意,nginx安裝時需要安裝如下模組,讓nginx能獲取到客戶端真實的ip with http realip module灰度發布常見一般有三種方式 1,nginx根據cookie實現灰度發布根據cookie查詢...

Nginx實現系統灰度發布

在系統發布的時候,經常會遇到要停機發布的情況。大家經常會在凌晨去發布系統。這樣導致開發和測試的同時都很辛苦。那麼有沒有一種比較簡單 成本相對可以接受的方式來進行發布呢?在這裡,給大家推薦灰度發布的方式。灰度發布的方式很多,最簡單的操作方式是直接操作nginx的upstream來進行灰度發布。前提 至...