原文由JoyMao發(fā)表于TesterHome社區(qū)網站棒口,點擊原文鏈接可與作者直接交流
這個是簡單的措施來解決外部系統(tǒng)回調測試環(huán)境時面臨多套環(huán)境的方法保屯。
背景:
部門有10套測試環(huán)境并發(fā),每套環(huán)境都有一些同樣的應用來接受外網或者內網內的其他系統(tǒng)的webhook回調處理贤重,但回調地址只能有一個:每次版本變化茬祷,對應應用ip都會發(fā)生變化,需要及時去修改游桩,存在管理混亂的問題牲迫。
過程
解決的方法很多耐朴,比如服務化借卧、proxy、k8s...復雜度不一筛峭,不改動現有測試發(fā)布環(huán)境的基礎上铐刘,利用proxy是最方便的,但需要提供方便改動proxy轉發(fā)的方式影晓。
這時候nginx的dynamic_upstream插件就能解決镰吵,他提供http接口來管理upstream(server的加檩禾、刪、上線疤祭、下線)盼产,非常方便。
我們要做的就是在發(fā)布系統(tǒng)中建立一個管理頁面來管理勺馆,結構如下:
此插件比較古老(古老不代表過時)戏售,github地址:https://github.com/cubicdaiya/ngx_dynamic_upstream
readme中有具體的API,這里就不再粘貼了草穆。
附:安裝插件及nginx過程(centos為例)
[1]
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
cd /home
mkdir callback_switch
[2]
cd callback_switch
wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz --no-check-certificate
tar zxvf pcre-8.45.tar.gz
cd pcre-8.45
./configure
make && make install
[3]
cd ..
wget https://nginx.org/download/nginx-1.16.1.tar.gz --no-check-certificate
tar zxvf nginx-1.16.1.tar.gz
wget https://github.com/cubicdaiya/ngx_dynamic_upstream/archive/refs/tags/v0.1.6.tar.gz --no-check-certificate
tar zxvf v0.1.6.tar.gz
[4]
make nginxbin
cd nginx-1.16.1
./configure --prefix=/home/callback_switch/nginxbin --with-http_stub_status_module --with-http_ssl_module --with-pcre=/home/callback_switch/pcre-8.45 --add-module=/home/callback_switch/ngx_dynamic_upstream-0.1.6
make
make install
[6]
ln -s /home/callback_switch/nginxbin/sbin/nginx /usr/sbin/nginx
后續(xù)優(yōu)化
因為插件本身接口響應不利于UI端使用灌灾,我用go-iris重新包裝了下他的http接口,配合vue-element實現對應的管理UI悲柱,實現只要配置好nginx的uptream zone后锋喜,可以十分方便的進行回調請求接收應用的設置。
原文由JoyMao發(fā)表于TesterHome社區(qū)網站豌鸡,點擊原文鏈接可與作者直接交流
今日份的知識已攝入嘿般,埋頭學技術也不忘抬頭看路喲 >>>