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
由於我只是需要用到裡面的
當出現上圖資訊,表示編譯成功
12.增加虛擬網絡卡make && make
install
一種是臨時增加,一種是配置到開機啟動
1vim /etc/network/inte***ces 增加後重啟網絡卡ifconfig eth1:1
172.16.23.111 netmask 255.255.255.0up2
ifconfig eth1:1 down
13. nginx.conf 配置檔案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
增加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 前言
自從工作後,特別是最近一年,都沒有怎麼更新過部落格,主要是本身工作內部沒有什麼高大上的內容,就是一些簡單的企業級開發,沒有多少技術含量,更多的是對業務的了解和抽象,所以就不怎麼想寫。其實呢,平時也有多當今前沿技術進行了解,所以更主要的原因是因為自己懶。現在好了,公司有意嚮往物聯網發展了,讓我先調研一...