Nginx 四層負載均衡

2022-04-18 07:46:05 字數 1841 閱讀 6858

目錄四層負載均衡是基於ip+埠的負載均衡,七層負載均衡是基於url或主機名等應用層資訊的負載均衡。

其他層負載均衡**載):

二層負載均衡(mac)

一般是用虛擬mac位址方式,外部對虛擬的mac位址請求,負載均衡接收後分配後端真實的mac位址響應。

三層負載均衡(ip)

一般採用虛擬ip位址方式,外部對虛擬的ip位址請求,負載均衡接收後分配後端真實的ip位址響應。

四層負載均衡(tcp)

用虛擬ip+port接收請求,再**到對應的真實的ip+prot 伺服器程序埠

七層負載均衡(http)

用虛擬的url或主機名接收請求,再**到對應的真實的處理網域名稱的伺服器

四層負載均衡架構中客戶端向負載均衡傳送 syn 請求建立第一次連線,通過配置的負載均衡演算法選擇一台後端伺服器,並且將報文中的 ip 位址資訊修改為後台伺服器的ip位址資訊,因此,tcp 三次握手連線是與後端伺服器直接建立起來的。

七層負載均衡裝置要根據真正的應用層內容再選擇伺服器,只能先與負載均衡裝置進行 tcp 連線,然後負載均衡裝置再與後端伺服器建立另外一條 tcp 連線通道。七層裝置在網路效能損耗會更多一些,因為只有先**了後端伺服器和客戶端建立連線(三次握手)後,才可能接受到客戶端傳送的真正應用層內容的報文,然後再根據該報文中的特定字段,再加上七層負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。

結論:

四層負載均衡中,tcp連線的三次握手是客戶端和應用伺服器直接建立,四層負載均衡裝置只是起到乙個類似路由器的**動作。

七層負載均衡中,tcp連線需要建立兩次:客戶端需要和七層負載均衡裝置建立,七層負載均衡裝置需要和後端伺服器建立,所以效率低於四層負載均衡。

四層負載均衡裝置可以對七層負載均衡裝置實現負載均衡,配置兩台七層負載均衡伺服器,作為四層負載均衡伺服器的後端伺服器,使用 nginx服務 實現七層負載均衡:

# lb01 

# 配置檔案

upstream all

server

location /check

}# proxy_parmas 檔案內容略

# lb02

# 配置檔案

upstream all

server

location /check

}# proxy_parmas 檔案內容略

使用 nginx服務 實現四層負載均衡,此處涉及到ngx_stream_core_module模組,需要注意的是此模組配置是和 http層 同一級別的,在主配置檔案 nginx.conf 中需要和 events層、http層 並列,此處使用 include 配置, 將 stream層 的子配置檔案全部放到對應的目錄中,方便集中管理:

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

個人筆記nginx 四層負載均衡

1.什麼是負載均衡 基於傳輸層 協議包來封裝的 tcp ip 七層負載均衡是 應用層協議,他組裝在四層 負載均衡基礎之上,無論是四層負載均衡還是 七層負載均衡 都指的是 osi 網路模型。傳輸層 tcp udp協議 埠 基於 ip port的負載均衡 ssh 22 mysql 3306 redis ...