bara基于Nginx和Docker的測試環(huán)境
bara,即日語的バラ,也就是玫瑰。
bara是一個基于Nginx和Docker的多版本程序同時在線的簡易測試環(huán)境,只能單機使用,并且只是一個PoC而已,僅供參考。
簡單來說,就是使用Nginx做反向代理,代理到后面的Docker容器,bara能動態(tài)創(chuàng)建Nignx配置文件,重啟Nginx;而瀏覽器可以通過設置特殊header(默認為一個字母v)來通過Nginx代理,訪問指定的后面的Docker容器。
bara概覽
bara架構很簡單,一個Nginx服務器運行在host上,畫圖如下:
其背后用到的主要原理就是Nginx的proxy_pass以及map功能,Nginx會根據瀏覽器設置的自定義header(v)的值,根據map的映射關系,找到合適的upstream代理過去而已。
而bara,就是發(fā)揮了Nginx的強大功能,和Docker的靈活輕便,從而能在一臺主機上,跑n個版本的應用程序,以方便測試。
bara還有一個概念就是Nginx的配置文件模板,Nginx的配置文件是根據這個模板動態(tài)創(chuàng)建的,這個模板如果有{{upstream}}占位符,則會被bara系統(tǒng)自動根據運行中的容器來替換為一個upstream列表。
評論
圖片
表情
