四層負載均衡

2021-10-05 14:18:28 字數 1971 閱讀 9316

基於傳輸層的負載均衡,協議包來封裝的是(tcp/ip)。

實現埠**,ssh、mysql等都是tcp協議請求,只能用tcp方式連線的服務,我們就可以使用四層負載均衡來排程。

四層結合七層實現大規模集群架構

原因:七層負載均衡能夠接受的連線數有限,需要配置多台七層負載均衡

問題:多台七層如何實現輪詢?

解決:在多台七層負載均衡前面接入四層負載均衡。

四層可以保證七層負載均衡的高可用性。

四層負載均衡,不識別網域名稱,只能識別埠,可以在四層結合七層的情況下,四層做埠**,七層來實現網域名稱的匹配,然後**到後端web節點。

四層負載均衡只能**tcp/udp/ip協議:如tcp/80 tcp/22 tcp/3306 udp/53。

四層負載均衡可以解決七層負載均衡高可用性的問題。(可以多個負載均衡同時提供服務)

四層負載均衡可以解決七層負載均衡埠數限制問題(七層負載均衡最多能使用的埠是65535)

四層的**效率遠比七層**的效率快的多,但是只能支援tcp/ip協議,所以他的功能較弱,雖然七層效率不高,但他支援http/https這樣的應用層協議。

請求四層負載均衡排程後端七層負載均衡

[root@lb-4 ~]# cat /etc/nginx/nginx.conf

#使用者請求四層負載均衡80,排程到後端七層負載均衡 (與http{}同級)

stream

server

}

配置四層負載均衡 基於埠**(22埠 3306埠)

stream 

server

upstream ssh

upstream mysql

server

server

}

四層負載均衡如果想要獲取日誌,需要把日誌資訊定義到stream層中。使用log_format定義。

定義方法:

#定義日誌的格式

log_format proxy '$remote_addr - [$time_local] $status $protocol'

' "$upstream_addr" "$upstream_bytes_sent" "$upstream_connect_time"';

#呼叫日誌

access_log /var/log/nginx/tcp_access.log proxy;

四層負載均衡透傳真實ip

環境:四層+七層+七層+web

配置步驟:

在四層新增proxy_protocol協議(傳遞資訊攜帶乙個新的tcp頭部(包含源ip、源埠等資訊))

在七層負載均衡上新增proxy_protocol協議

排除七層前面**的ip位址 (使用set_real_ip_from)

同時將proxy_protocol協議提取真實ip位址賦值給$remote_addr變數通過x-forward-for。

第二個七層負載均衡什麼都不用配置,只需要開啟x-forward-for即可

配置方法:

四層配置

[root@lb-4 conf]# vim nginx.conf

...stream

server

}...

七層 (如果有多個配置第乙個七層即可)

四層負載均衡

nat方式l4負載均衡 網路位址轉換 nat,network address translation 屬於廣域網接入技術,它是一種將私有 保留 位址轉化為合法ip位址的轉換技術,被廣泛應用於各種型別網際網路接入方式和各種型別的網路中 採用nat方式實現的l4伺服器負載均衡,後端伺服器可以位於不同的物...

四層負載均衡

伺服器,使用proxy模組 負載均衡解決了,使用乙個網域名稱訪問多台web的問題,必須要使用proxy upstream 負載均衡和共享儲存都是為了web的共享 七層負載均衡 識別網域名稱,作用於http層 四層負載均衡 不識別網域名稱,作用於tcp層,可以做埠 做資料庫的 nginx在1.9版本之...

四層負載均衡

1.什麼是四層 osi 傳輸層 tcp ip udp tcp 四層是基於 方式 2.四層負載均衡使用場景 1.四層負載均衡 七層負載均衡 2.dns 多機房 四層負載均衡 七層負載均衡 3.soa 松耦合架構 登入 passport.jd.com 註冊 reg.jd.com 商品詳情 pro.jd....