使用nginx 4层转发 stream模块实现dnsmasq负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用nginx 4层转发 stream模块实现dnsmasq负载均衡相关的知识,希望对你有一定的参考价值。

一.配置说明
需要搭建个dnsmasq的负载均衡,由于haproxy没法udp负载均衡,所以使用nginx的stream实现udp负载均衡

二.源码安装配置nginx
下载nginx-1.16.0.tar.gz
tar zxf nginx-1.16.0.tar.gz
cd nginx-1.16.0/src/auto/cc
vi gcc 关闭gcc编译,目的减少nginx大小 #debug下面

安装依赖
yum install -y gcc
yum install -y pcre-devel
yum install -y openssl-devel

检测编译环境
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --with-stream
make
make install

创建用户
useradd -M -d /usr/local/nginx/ -s /sbin/nologin -u 800 nginx

修改配置文件
cd conf
cp -p nginx.conf nginx.conf.bak
vi nginx.conf

user nginx nginx;
worker_processes 8;
worker_cpu_affinity auto;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events
worker_connections 1024;

stream
upstream dns
server 190.168.3.7:53;
server 190.168.3.77:53;

server
listen 53 udp;
proxy_responses 1;
proxy_timeout 20s;
proxy_pass dns;

检测启动
cd /usr/local/nginx/sbin
./nginx -t
./nginx

nginx -V
netstat -anuple | grep 53
监听udp53

测试dnsmasq负载均衡成功

以上是关于使用nginx 4层转发 stream模块实现dnsmasq负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

利用nginx的stream模块实现内网端口的转发代理

nginx 一直都在做7层转发,4层也需要看看

通过阿里云4层代理nginx到本地服务器

利用nginx的stream模块实现内网端口的转发代理

Nginx转发TCP请求

Nginx 四层代理之动静分离与负载均衡