使用nginx做 tcp/udp 负载均衡

我们两清 提交于 2019-11-30 18:01:15

https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

 

目标:对非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,这个之前一直忽略的小工具,用起来居然挺香。

如遇到问题可尝试留言,一起学习

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!