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 和負載均衡的支...