個人筆記nginx 四層負載均衡

2021-10-05 19:04:22 字數 2893 閱讀 4637

1.什麼是負載均衡

基於傳輸層 協議包來封裝的 ( tcp/ip ), 七層負載均衡是 應用層協議,他組裝在四層 負載均衡基礎之上,無論是四層負載均衡還是 七層負載均衡 都指的是 osi 網路模型。

傳輸層:tcp/udp協議 埠 ( 基於 ip+port的負載均衡 ) ssh(22) mysql(3306) redis(6379)

應用層:請求的uri、header修改、許可權控制、訪問規則等等

2.四層負載均衡的應用場景

實現埠**

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

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

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

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

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

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

注意:四層負載均衡 不識別你的網域名稱,他僅識別埠,所以在四層結合七層的情況下,四層做埠**,七層來實現網域名稱的匹配,然後**到後端web節點。

總結四層負載均衡:

2. 四層負載均衡僅能**tcp/ip協議、udp協議,通常用來**埠:如 tcp/80 tcp/443 tcp/3306 tcp/22 udp/53

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

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

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

四層:效能高,功能弱

七層:效能差,功能強

1.需要安裝nginx

2.nginx配置四層負載均衡的語法:stream模組來實現的

stream

server

} stream是四層負載均衡的配置,不能出現在http 裡面

重點:[root@lb-4 ~]

# gzip /etc/nginx/conf.d/default.conf

配置四層負載均衡 (七層+多web) (1個四層 + n多個七層 + 2~3個web節點 )
[root@lb-4 ~]

# cat /etc/nginx/nginx.conf

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

stream

server

}

配置四層負載均衡 基於埠** ( 22埠 3306埠 )
10.0.0.4 5555    --> 172.16.1.51  22埠

10.0.0.4 6666 --> 172.16.1.51 3306埠

[root@lb-4 ~]

# cat /etc/nginx/nginx.conf

#使用者請求四層負載均衡80,排程到後端七層負載均衡

stream

server

### upstream ssh

upstream mysql

server

server

}

nginx四層負載均衡日誌如何記錄
[root@lb-4 ~]

# cat /etc/nginx/nginx.conf

user nginx;

worker_processes 2;

error_log /

var/log/nginx/error.log warn;

pid /

var/run/nginx.pid;

events

#使用者請求四層負載均衡80,排程到後端七層負載均衡

stream

server

### upstream ssh

upstream mysql

server

server

}

四層+7層+七層+web透傳真實ip

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

七層需要支援proxy_protocol,在listen 80新增proy_protocl協議。

至此七層已經獲取到 了 客戶端的ip 和 四層負載均衡的ip

排除七層前面**的ip位址 set_real_ip_from

同時將proxy_protocol協議提取真實ip位址複製給 $remote_addr變數通過x-forwarded-for攜帶到後端

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

web配置realip欄位

四層配置

[root@lb-4 conf]

# vim nginx.conf..

.stream

server }.

..

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

[root@lb conf.d]

# cat proxy_ip_oldxu.com.conf

upstream ip

server

}

web

[root@web02 ~]

# cat /etc/nginx/conf.d/ip.oldxu.com.conf

server

location ~ \.php$

}

Nginx 四層負載均衡

目錄四層負載均衡是基於ip 埠的負載均衡,七層負載均衡是基於url或主機名等應用層資訊的負載均衡。其他層負載均衡 載 二層負載均衡 mac 一般是用虛擬mac位址方式,外部對虛擬的mac位址請求,負載均衡接收後分配後端真實的mac位址響應。三層負載均衡 ip 一般採用虛擬ip位址方式,外部對虛擬的i...

Nginx四層負載均衡概述

目錄nginx如何配置四層負載均衡 nginx四層負載均衡埠 四層負載均衡是基於傳輸層協議包來封裝的 如 tcp ip 那我們前面使用到的七層是指的應用層,他的組裝在四層的基礎之上,無論四層還是七層都是指的osi網路模型。1 四層 七層來做負載均衡,四層可以保證七層的負載均衡的高可用性 如 ngin...

Nginx 四層負載均衡配置

nginx1.9之後,開始支援四層負載均衡,需要引入額外的模組 測試環境 centos7 nginx1.9開始支援tcp層的 通過stream實現的,而socket也是基於tcp通訊。wget 作用 實現反向 負載負載庫wget tar zxvf master nginx 支援tcp 和負載均衡的支...