物聯網架構成長之路 10 Nginx負載均衡

2021-09-07 16:33:46 字數 2475 閱讀 2528

0. 前言

關於nginx負載均衡的簡單配置,我以前部落格配置過基於http的負載均衡。這次的負載均衡有點不一樣,就是基於tcp的負載均衡。基於http負載均衡是預設的nginx版本支援的,配置也很簡單,但是基於tcp的負載均衡,配置起來就有一點點麻煩了。

由於我們要用到四層tcp層負載均衡,所以要自己編譯

nginx

然後編譯

1 ./configure --prefix=/root/workspace/emq/nginx --with-stream --add-module=/root/workspace/emq/nginx-1.12.2/echo-nginx-module --with-http_geoip_module
可能會要求安裝這個

libgeoip-dev

包 apt-get install libgeoip-dev

由於我只是需要用到裡面的

當出現上圖資訊,表示編譯成功

1

make && make

install

2.增加虛擬網絡卡

一種是臨時增加,一種是配置到開機啟動

1

ifconfig eth1:1

172.16.23.111 netmask 255.255.255.0up2

ifconfig eth1:1 down

vim /etc/network/inte***ces  增加後重啟網絡卡

1

auto lo

2iface lo inet loopback34

auto eth1

5iface eth1 inet static

6 address 172.16.23.204

7 netmask 255.255.255.0

8 gateway 172.16.23.1

910 #auto eth1:1

11 #iface eth1:1

inet static

12 # address 172.16.23.104

13 # netmask 255.255.255.0

14 # gateway 172.16.23.1

3. nginx.conf 配置檔案

增加nginx的

echo

模組、geo

模組、stream

模組一開始除錯時,使用http{}進行除錯,因為訪問 

就可以進行變數除錯了,以為不清楚map的語法,所以只能一點一點除錯。

upstream {} 後端負載均衡器

map {} 變數對映

geo {} ip過濾等功能

server {} 伺服器配置

更多功能這裡不做描述,網上資料更多更全。

4. 測試

從上面兩個圖可以看到,建立兩個服務監聽應用

172.16.23.217:60000 172.16.23.217:60001 這兩個模擬的是實際應用中的後端業務應用(mqtt集群) 

tcp client 建立5個連線,模擬不同客戶端

(mqtt裝置)

172.16.23.204:12345 172.16.23.111:12345 這兩個是負載均衡器nginx監聽的埠。

5個客戶端連線連到

nginx

負載均衡器,

nginx

會隨機負載到

60000

和60001

兩台後端應用服務,並且也會隨機使用

nginx

的虛擬網絡卡

204或

111

物聯網架構成長之路 1 前言

自從工作後,特別是最近一年,都沒有怎麼更新過部落格,主要是本身工作內部沒有什麼高大上的內容,就是一些簡單的企業級開發,沒有多少技術含量,更多的是對業務的了解和抽象,所以就不怎麼想寫。其實呢,平時也有多當今前沿技術進行了解,所以更主要的原因是因為自己懶。現在好了,公司有意嚮往物聯網發展了,讓我先調研一...

物聯網架構成長之路 0 目錄

零 說明 說明一下,我寫的部落格,都是我自己實踐後,寫下記錄,方便以後自己看而已。沒有什麼系統的教學教程。也沒有對底層的原理進行講解,我覺得這些目前不是我需要注重的,作為乙個開發人員,快速實現好需求才是最重要的。而作為一名合格的架構負責人,又必須了解底層,因此需要系統學習的,建議讀者看官方文件或者對...

物聯網架構成長之路 1 前言

自從工作後,特別是最近一年,都沒有怎麼更新過部落格,主要是本身工作內部沒有什麼高大上的內容,就是一些簡單的企業級開發,沒有多少技術含量,更多的是對業務的了解和抽象,所以就不怎麼想寫。其實呢,平時也有多當今前沿技術進行了解,所以更主要的原因是因為自己懶。現在好了,公司有意嚮往物聯網發展了,讓我先調研一...