Nginx代理TCP服务

利用nginx代理tpc

部署nginx

安装编译所需环境
# yum install -y apr-devel apr-util-devel pcre-devel openssl-devel

添加www用户,用于给nginx服务器运行使用
# useradd -s /sbin/nologin -M www

下载nginx的源码包,编译安装nginx
# cd /usr/local/src/ && wget -c http://nginx.org/download/nginx-1.12.0.tar.gz

解压nginx-1.12.0
# tar -zxvf nginx-1.12.0.tar.gz

官方文档地址
http://nginx.org/en/docs/stream/ngx_stream_core_module.html

切换到nginx的解压目录
# cd nginx-1.12.0/

检测编译环境,编译安装nginx-1.12.0实现代理端口等功能,需要指定--with-stream的编译参数
# ./configure --prefix=/usr/local/nginx-1.12.0 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-stream

编译安装nginx
# make -j 2 && make install

最佳实现方式,创建软连接
# ln -sv /usr/local/nginx-1.12.0/ /usr/local/nginx

编辑nginx.conf配置文件
# vim /usr/local/nginx-1.12.0/conf/nginx.conf

在配置文件中最外层添加如下内容,代理本机(192.168.1.3)的8888端口,通过8888端口远程链接到192.168.1.5的节点
stream {
upstream tcp_proxy {
    hash $remote_addr consistent;
    server 192.168.1.5:22   max_fails=3 fail_timeout=30s;
}

server {
    listen 8888 so_keepalive=on;
    proxy_connect_timeout 10s;
    proxy_timeout 300s;
    proxy_pass tcp_proxy;
	}

}

注意:
   so_keepalive=on            设置长链接(如需不用,可以删除)
	proxy_timeout             与后端的过期时间

检查配置文件是否正确
# /usr/local/nginx/sbin/nginx -t

启动nginx服务
# /usr/local/nginx/sbin/nginx

效果图,通过nginx实现代理本机的8888端口去远程链接192.168.1.5 22号端口的ssh服务

原文地址:https://www.cnblogs.com/demon89/p/nginx_tcp.html