Haproxy配置4層跟7層黑名單

2021-10-25 07:04:02 字數 1712 閱讀 1736

在生產環境跟測試環境部署測試包的時候,偶遇同時將測試環境的資料庫連線資訊跟生產環境配置的一樣(生產環境跟測試環境部署在同乙個內網中),在測試時發現,測試時更改的資料在生產環境也出現了改變,正常情況下,這屬於開發的重大事件。

想找乙個方法,即使開發打包的時候資料庫填寫錯誤了,也不會影響生產環境的資料庫,就想在資料庫的前端**的配置中,加上黑名單,限制測試環境的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之後...