服務架構調整1 通過nginx灰度發布應用

2021-09-01 15:38:25 字數 1103 閱讀 3879

隨著公司業務規模擴大,傳統的架構已無法支撐業務量階梯式的增長,應用發布也必須迎來調整。之前的發布方式,需要通過指令碼切換nginx,然後通過ansible進行批量發布;由於業務的特殊性質,原有方案一旦上線**出現bug或者人為出現操作失誤,將導致大面積應用無法提供服務,為了避免故障發生造成毀滅性的後果,決定分布進行架構調整。

通過nginx進行灰度發布大概有如下三種方式,三種方式各有優缺點:

1、nginx+lua指令碼實現(可定製化高,需要程式設計基礎,實現難度較大)

2、通過判斷cookie值實現(可定製cookie值,精準定位到指定使用者,配置簡單)

3、通過判斷源ip實現(配置簡單,但是大多情況ip可變,無法準確定位)

通過商討,決定使用判斷cookie值實現灰度發布,可以快速達到我們的需求

現有nginx集群變更成公共nginx集群,增加區域nginx集群若干及主入口nginx集群,使用者通過slb訪問進入主入口nginx集群,再通過指定的cookie值**到區域集群,沒有cookie標記的統一**到公共集群。主入口nginx集群僅做**功能,不額外配置其他服務,減少nginx配置檔案的改動。

作業系統:centos-7.5

nginx版本:openresty-1.11.2

主入口nginx.conf配置如下,主要增加cookie判斷:

}}公共及區域nginx配置,只需配置**到後端伺服器即可。

使用者第一次訪問時,因為沒有帶cookie,預設訪問到公共nginx,伺服器向使用者端存放指定區域cookie;第二次訪問時,主入口nginx通過判斷,使用者cookie中的area_code,將使用者轉向指定區域nginx。

通過以上配置,可以灰度發布某個小流量區域的版本,通過測試後再按百分比進行逐步發布到全服,以此減小發布失敗對專案造成的影響。

03 通過docker安裝nginx

nginx是一款高效能的伺服器,常用作反向 正向 動靜分離以及負載均衡。本文將闡述使用docker安裝nginx伺服器,並通過nginx訪問之前fastdfs上傳的檔案。docker pull nginxmkdir p root nginx conf touch root nginx conf ng...

Flex Modules通訊 1 通過介面

flex modules通訊方式有很多種 通過繼續介面 引數傳遞 定義事件通訊。這裡討論通過繼續介面通訊。模組是獨立,通過繼承介面,允許外部應用程式與他們通訊。首先,定義介面icommunicaton.as 1 package 2 9 建立module繼承icommunicaton介面 1 2 xm...

centos7通過nginx搭建SSL

今天給大家帶來的是一篇關於通過nginx搭建https訪問轉跳後端http的教程,部署方式如下 安裝基礎元件 yum y isntall firewalld yum y install gcc gcc c yum y install pcre devel yum y install zlib dev...