Nginx配置端口转发

乡下的树 2021年04月29日 293次浏览

说明

之前在跳板机上使用rinetd做端口转发,每过阵子就会出现连接数过多导致连接失败,查看连接数也才400左右,只能重启rinetd服务解决。
总是重启也不是解决之路,决定替换了它。
查询nginx从1.9.0开始支持TCP转发,1.9.13开始支持UDP转发。
此功能的模块为ngx_stream_core。不过Nginx默认没有开启此模块,所以需要手动安装。

1.编译Nginx

如果需要功能最小化,只保留–with-stream转发模块,可–without-http禁用http模块

tar zxf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/home/nginx --with-stream --without-http
make && make install
启动服务
/home/nginx/sbin/nginx

2.配置Stream节点

单节点转发

stream {  --跟http平级
    server {
        listen 23306;
        proxy_connect_timeout 10s;
        proxy_timeout 30s;
        proxy_pass 10.4.7.2:3306;  #转发mysql端口
    }

}

负载转发

stream {   --跟http平级           
    server {
        listen 17788;
        proxy_connect_timeout 10s;
        proxy_timeout 30s;
        proxy_pass app01;
    }
    upstream app01 {
        server 10.4.7.2:7788;
        server 10.4.7.2:7788;
    }
}

重启服务配置生效

/home/nginx/sbin/nginx -s reload

后记:改用nginx后,就没重启过了,一直稳定,老毛子的nginx还是牛~