在生產環境跟測試環境部署測試包的時候,偶遇同時將測試環境的資料庫連線資訊跟生產環境配置的一樣(生產環境跟測試環境部署在同乙個內網中),在測試時發現,測試時更改的資料在生產環境也出現了改變,正常情況下,這屬於開發的重大事件。
想找乙個方法,即使開發打包的時候資料庫填寫錯誤了,也不會影響生產環境的資料庫,就想在資料庫的前端**的配置中,加上黑名單,限制測試環境的linux主機,對其進行訪問(限制ip即可)。
vim /etc/haproxy/haproxy.cfg
4層**-->新增如下**:
acl denylist src 10.32.39.131 ##設定denylist來自131
tcp-request connection reject if denylist ##當denylist的訪問時加入黑名單
frontend mariadb-front
bind *:3306
mode tcp
acl denylist src 10.32.39.131 ##設定denylist來自131
tcp-request connection reject if denylist ##當denylist的訪問時加入黑名單
# timeout client 0 #客戶端和haproxy的連線超時時間,0位永不超時
option clitcpka
default_backend mariadb-back
7層**-->新增如下**:
acl denylist src 172.25.254.77 ##設定denylist來自77
http-request deny if denylist ##當denylist的訪問時加入黑名單
frontend public
redirect location if denylist ##來自denylist的訪問全部轉到**
redirect location if spaclelist 來自spaclelist的訪問全部轉到京東
#bind 192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem
#use_backend static if
#use_backend static if
default_backend dynamic
systemctl restart haproxy
這樣就限制了該伺服器上的程式訪問該資料庫**伺服器,也就不能訪問資料庫了。
注意:如果在配置黑名單之前,測試業務上的程式已經成功啟動了,那麼黑名單配置完成後,測試伺服器還是可以正常訪問資料庫的,但是如果將該測試環境部署的程式kill掉以後,再重新啟動,那麼啟動程式應該會報錯,因為在載入的時候,資料庫連線不上,導致程式無法啟動,這樣也就避免了由於程式配置資料庫時出錯,導致生產環境的資料遭到測試環境的破壞。
參考:
nginx配置7層協議,4層協議
舉例講解下什麼是7層協議,什麼是4層協議。2 協議配置 這裡我們舉例,在nginx做負載均衡,負載多個服務,部分服務是需要7層的,部分服務是需要4層的,也就是說7層和4層配置在同乙個配置檔案中。準備三颱機器 服務ip 10.0.105.配置本地host解析網域名稱 後端伺服器ip nginx a 1...
網路傳輸7層,4層,5層模型
一 7層 二 5層 5層只是osi和tcp ip的綜合,是業界產生出來的非官方協議模型,但是很多具體的應用。實際應用還是tcp ip的四層結構。為了方便可以把下兩層稱為網路介面層。五層體系結構包括 應用層 運輸層 網路層 資料鏈路層和物理層。5層模型不展開講解,內容和功能參照7層的,這裡把3者做乙個...
4層與7層負載均衡
nginx mysql proxy lvs ali lvs dpvs ttgw 硬體f5,如下圖 lvs dr模式 1.客戶端將訪問vip報文傳送給lvs伺服器 2.lvs伺服器將請求報文的mac位址改為後端真實伺服器的mac位址 3.後端真實伺服器得到訪問報文後進行ip檢視,再確認自己有vip之後...