1. 程式人生 > >使用nginx做 tcp/udp 負載均衡

使用nginx做 tcp/udp 負載均衡

 

目標:對非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,這個之前一直忽略的小工具,用起來居然挺香。

如遇到問題可嘗試留言,一起