使用nginx做 tcp/udp 負載均衡
阿新 • • 發佈:2019-10-04
目標:對非http流量進行負載均衡
可選技術:nginx + docker-compose ,,,,
過程:
負載tcp/udp流量需要重新構建一下nginx,官網原文是 built with the --with-stream
,於是找了幾個帶引數的Dockerfile,大都是半年一年之前的文章了,打映象不是重點,而且除錯起來費時費力。還是想最好直接找一個官方構建好的版本,負載均衡測試後再自己構建映象也不遲。
在docker hub找了一下,nginx預設映象不帶--with-stream
引數,也沒有找到類似擴充套件的tag,繼續搜尋 docker nginx --with-stream
最終找到openresty,預設dockerfile就帶了這個引數,最終的docker-compose.yml如下
version: "3"
services:
openresty:
image: openresty/openresty
volumes:
- ./conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
- ./var/run/openresty/:/var/run/openresty/
ports:
- "0.0.0.0:8888:8888"
在nginx.conf追加,類似如下格式的埠負載內容
stream {
server {
listen 8888 ;
proxy_timeout 20s;
proxy_pass 192.168.1.101:8888;
}
server {
listen 8899 udp reuseport;
proxy_timeout 20s;
proxy_pass 192.168.1.101:8899;
}
}
在包含docker-compose.yml檔案的目錄下執行 docker-compose up -d
檢視宿主機埠是否已經啟動,測試連線
-- end
國慶放假在家沒法使用k8s叢集測試,沒法使用chart各種一鍵安裝了。本地虛擬機器全部開起來又會使本子風扇暴走,溫度和噪音,不太友好。
然後研究起docker-compose,這個之前一直忽略的小工具,用起來居然挺香。
如遇到問題可嘗試留言,一起